小编典典

您可以更改ng-repeat指令的“优先级”是什么?

angularjs

Angular文档说:-

DOM的编译是通过调用$
compile()方法执行的。该方法遍历DOM并匹配指令。如果找到匹配项,则将其添加到与给定DOM元素关联的指令列表中。一旦标识了给定DOM元素的所有指令,便
按优先级 对它们进行 排序 并执行其compile()函数。

我相信ng-repeat指令的优先级比自定义指令低,在某些情况下,例如dynamicid和custom指令。角度是否允许优先修改指令以选择先执行另一个指令?


阅读 295

收藏
2020-07-04

共1个答案

小编典典

是的,您可以设置指令的优先级。ng-repeat的优先级为1000,实际上比自定义指令高(默认优先级为0)。您可以使用该数字作为指导,以了解如何根据自己的指令设置自己的优先级。

angular.module('x').directive('customPriority', function() {
    return {
        priority: 1001,
        restrict: 'E',
        compile: function () {
            return function () {...}
        }
    }
})

优先级
-当在单个DOM元素上定义了多个指令时,有时有必要指定指令的应用顺序。优先级用于在调用指令的编译函数之前对它们进行排序。优先级定义为数字。首先编译具有更高数字优先级的指令。具有相同优先级的指令的顺序是不确定的。默认优先级为0。

2020-07-04