0

いくつかの条件が満たされない場合に 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
    }
  });
4

2 に答える 2

0

terminal: trueディレクティブ オプションを探しています。

于 2016-01-21T16:46:13.513 に答える
0

ngIf が役立ちます:

  <div ng-if="condition">
    <inner-element>
    </inner-element>
  </div>
于 2016-01-21T15:22:30.363 に答える