2016-04-11 3 views
0

Я просто попытался сделать что-то с двумя директивами, но я не понимаю, почему моя директива welcome стреляет первым.AngularJS Каков порядок директив обжига

Это не имеет значения, если у меня есть элемент, подобный этому <div goodbye welcome></div> или этот <div welcome goodbye></div>. В любом случае директива welcome всегда стреляет первым.

<body ng-app="greetings"> 
    <div goodbye welcome></div> 
</body> 

angular.module('greetings', []) 
.directive("goodbye", function() { 
    return { 
    restrict: "A", 
    link: function(){ 
     alert("See ya later!"); 
    } 
    } 
}) 
.directive("welcome", function() { 
    return { 
    restrict: "A", 
    link: function(){ 
     alert("Howdy!"); 
    } 
    } 
}); 

Что мне нужно изменить в коде выше, чтобы он таким образом, что goodbye директива пожары в первую очередь?

+0

_ «но всегда приветствуются директивы стрельбы первый» _ Нет, это не так. Это зависит от браузера. – zeroflagL

+0

Что означает u для браузера. Вы пытаетесь сказать, что выход будет отличаться от браузера FF, chrome, IE и т. д.? – Mou

+0

Вот что я имею в виду. – zeroflagL

ответ

1

Вы должны определить приоритет ваших директив:

<body ng-app="greetings"> 
    <div goodbye welcome></div> 
</body> 

angular.module('greetings', []) 
.directive("goodbye", function() { 
    return { 
    restrict: "A", 
    priority: 1, 
    link: function(){ 
     alert("See ya later!"); 
    } 
    } 
}) 
.directive("welcome", function() { 
    return { 
    restrict: "A", 
    priority: 2, 
    link: function(){ 
     alert("Howdy!"); 
    } 
    } 
}); 
+0

проблема возникает, когда вам нужны те же директивы, которые перевернуты для другой usecase – thegio

Смежные вопросы