如果多个指令位于angularjs中的单个元素上会发生什么

时间:2016-03-10 09:22:33

标签: javascript angularjs angularjs-directive

我是Angular JS的新手,我需要知道如何在我们在同一个元素上有2个或更多指令的情况下首先执行特定的指令。 示例指令directiveone directivetwo direvtivethree on div tag

<div>
    <div directiveone directivetwo direvtivethree></div>
</div>

但是我需要首先加载directivetwo然后是direvtivethree然后是direvtiveone。

请提出你的建议......

2 个答案:

答案 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,指令按字母顺序执行。