0

カスタム angular ディレクティブに問題があります。基本的に、以下の例では、変数「name」は、ディレクティブの範囲外の場合は正しくレンダリングされますが、ディレクティブの内側の場合は正しくレンダリングされません。

テンプレート:

<div ng-controller="swygController">
  <div swyg="example" edit="load(id)">
    {{name}}
  </div>
  {{name}
</div>

指令:

swyg.directive('swyg', function(){
  return {
    restrict: 'A',
    scope: {
      edit: '&'
    },
    compile: function(elm, attr){
      // Code
    },
    controller: function($scope, $element, $attrs) {
     // Code
    }
  };
});

これを空のコンパイルおよびコントローラー ディレクティブ関数でテストし (問題の原因となっているディレクティブ内の何かを除外するため)、同じ結果を得ました。

範囲の問題だと確信していますが、解決方法がわかりません。ディレクティブがコントローラーのスコープを継承できるようにする必要があるようです。ディレクティブはコントローラー内にあるので、問題ないと思いました。

他の誰かがこれに遭遇しましたか?

ご協力いただきありがとうございます!

4

2 に答える 2