I have this element:
<div ace-editor dl-editor></div>
And these directives:
angular.module('DLApp')
.directive 'aceEditor', () ->
restrict: 'A'
priority: 10
scope: false
link: linkFunc1
.directive 'dlEditor', (Graph) ->
restrict: 'A'
priority: 0
scope: false
link: linkFunc2
(I'm aware that 0
is the default)
dlEditor
always gets executed first, then aceEditor
. What am I doing wrong?
According to the docs:
emphasis mine
priority
When there are multiple directives defined on a single DOM element, sometimes it is necessary to specify the order in which the directives are applied. The priority is used to sort the directives before their compile functions get called. Priority is defined as a number. Directives with greater numerical priority are compiled first. Pre-link functions are also run in priority order, but post-link functions are run in reverse order. The order of directives with the same priority is undefined. The default priority is 0.
So, the directive with the higher priority (aceEditor
) is compiled first, but it's post-link function (which seems to be the one of interest to you) is run last.
You should either move the logic in the pre-link function (if that is applicable in your case) or reverse the priorities.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With