AngularJS:Scopeとのコントローラ通信への指令。
-
21-12-2019 - |
質問
私はメインコントローラとネストされた指示を持っています。私はこの例を見るには、コントローラと指令の間での通信は機能していません。
基本的には、カスタムディレクティブ(ボタン空カート)からメインコントローラスコープ関数を呼び出します。下のPlunkrの例を参照してください。
plukr:> http://plnkr.co/edit/82stlkkxbk6httnmnqlu ?p=previewud/a.>
解決
親ディレクティブの分離スコープを使用しているので、子ディレクティブはコントローラの範囲にアクセスできません。
親の分離を維持しながら、そのスコープ関数へのアクセスを持つ子ディレクティブを提供するには、親ディレクティブのscope: { ... }
プロパティとしてその関数を追加できます。
scope: {
...
emptyCart: '='
}
.
と親指令のビュー宣言の対応する属性に関数名を設定します。
<div ... data-show="showPopup" empty-cart="emptyCart"></div>
.
それからあなたがあなたのプランカーに雇用しようとしたすべての回避策をスキップし、コントローラ機能を発射するために子ディレクティブにng-click
を設定するだけです:
sHTML = "<button ... ng-click='emptyCart()'>Empty cart</button>";
.
所属していません StackOverflow