Я создал пользовательскую директиву с приоритетом 1000. В функции компиляции директивы я удаляю ng-if
из элемента. Я предполагаю, что, поскольку ng-if
имеет более низкий приоритет 600, он не должен компилироваться.
app.js
var app = angular.module('plunker', []);
app.controller('MainCtrl', function($scope) {
});
app.directive('myDirective', function(){
return {
priority: 1000,
compile: function(element){
angular.element(element).removeAttr('ng-if').removeAttr('my-directive1');
}
};
});
app.directive('myDirective1', function(){
return {
compile: function(){
console.log('in mydirective1');
}
};
});
index.html
<div my-directive ng-if="false" my-directive1>
This div should be visible.
</div>
Я создал еще одну директиву, чтобы проверить правильность моего понимания приоритета. myDirective
успешно удаляет myDirective1
, но не ngIf
.
Ниже приведена ссылка на плунжер: