Angular文档说:-
DOM的编译是通过调用$ compile()方法执行的。该方法遍历DOM并匹配指令。如果找到匹配项,则将其添加到与给定DOM元素关联的指令列表中。一旦标识了给定DOM元素的所有指令,便 按优先级 对它们进行 排序 并执行其compile()函数。
我相信ng-repeat指令的优先级比自定义指令低,在某些情况下,例如dynamicid和custom指令。角度是否允许优先修改指令以选择先执行另一个指令?
是的,您可以设置指令的优先级。ng-repeat的优先级为1000,实际上比自定义指令高(默认优先级为0)。您可以使用该数字作为指导,以了解如何根据自己的指令设置自己的优先级。
ng-repeat
angular.module('x').directive('customPriority', function() { return { priority: 1001, restrict: 'E', compile: function () { return function () {...} } } })
优先级 -当在单个DOM元素上定义了多个指令时,有时有必要指定指令的应用顺序。优先级用于在调用指令的编译函数之前对它们进行排序。优先级定义为数字。首先编译具有更高数字优先级的指令。具有相同优先级的指令的顺序是不确定的。默认优先级为0。