我創建了一個限制HTML訪問的指令,如果某些條件不符合。不幸的是,當內部指令在內部HTML被改變和編譯之前被調用時會出現問題。如何停止來自外部指令的嵌套指令執行?
是否有可能停止從任何外部指令嵌套的指令執行?
的例子(見控制檯):http://jsfiddle.net/xaQzb/14/
HTML:
<div ng-app="testApp">
<outer-element>
<inner-element>
</inner-element>
</outer-element>
</div>
應用
angular.module('testApp', []);
var app = angular.module('testApp');
app
.directive('outerElement', ['$compile', function($compile) {
function linker(scope, element) {
element[0].innerHTML = 'Replaced HTML and should not execute anything inside';
$compile(element.contents())(scope);
}
return {
restrict: 'E',
scope: false,
link: linker
}
}]);
app
.directive('innerElement', function() {
function linker(scope, element) {
console.log('Directive has been called');
}
return {
restrict: 'E',
scope: false,
link: linker
}
});
我想最好和最簡單的方法是隻加ng - 如果對內部指令和從外部元素 –
@PetrAveryanov設置我不想觸摸內部元素,這就是爲什麼我建立一個外部元素指令這對我來說就是這樣 – skmasq