角度文档说:-
DOM 的编译是通过调用 $compile() 来执行的
方法。该方法遍历 DOM 并匹配指令。如果一个
找到匹配项,将其添加到与之关联的指令列表中
给定的 DOM 元素。一旦给定 DOM 元素的所有指令
已确定他们是按优先级排序和他们的
执行compile()函数。
我认为 ng-repeat 指令的优先级低于自定义指令,在某些用例中,例如动态 id 和自定义指令 https://stackoverflow.com/questions/19254705/index-of-ng-repeat-computed-after-linker-function-of-angular-directive-co。角度是否允许修改指令的优先级以选择一个指令在另一个指令之前执行?
是的,您可以设置指令的优先级。ng-repeat
优先级为1000 https://github.com/angular/angular.js/blob/v1.2.0-rc.2/src/ng/directive/ngRepeat.js#L215,实际上比自定义指令要高(默认优先级为0)。您可以使用此数字作为指导,了解如何设置与其相关的指令的优先级。
angular.module('x').directive('customPriority', function() {
return {
priority: 1001,
restrict: 'E',
compile: function () {
return function () {...}
}
}
})
priority- 当在单个 DOM 元素上定义多个指令时,有时需要指定指令的应用顺序。优先级用于在调用编译函数之前对指令进行排序。优先级定义为一个数字。首先编译具有较高数字优先级的指令。具有相同优先级的指令的顺序未定义。默认优先级为 0。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)