我是Angular JS的新手,我需要知道如何在我们在同一个元素上有2个或更多指令的情况下首先执行特定的指令。 示例指令directiveone directivetwo direvtivethree on div tag
<div>
<div directiveone directivetwo direvtivethree></div>
</div>
但是我需要首先加载directivetwo然后是direvtivethree然后是direvtiveone。
请提出你的建议......
答案 0 :(得分:2)
您应该按顺序使用指令priority
来确定哪些指令应该首先编译。
var myModule = angular.module(...);
myModule.directive('directiveName', function (injectables) {
return {
restrict: 'A',
template: '<div></div>',
templateUrl: 'directive.html',
replace: false,
priority: 0,
transclude: false,
...
此选项告诉angular按优先级对指令进行排序,以便在其他指令之前编译/链接具有更高优先级的指令。
答案 1 :(得分:1)
添加优先级属性:
app.directive('exampleDirective', function() {
return {
priority: *numeric value*,
restrict: 'A',
link: function() {
}
}
}
执行顺序是按最高优先级编号。 如果未指定,则priority为0,指令按字母顺序执行。