如何让指令内部的controller生成的数据传到指令外部的控制器中
まずは 3 つの方法について説明しましょう:
上記の答えはブロードキャスト通信を使用しており、上向きに $emit、下向きに $broadcast を使用しています$emit向上,$broadcast向下
$emit
$broadcast
service共享数据,就是把同一个service注入到directive和controller中,然后操作这个service的数据就好
service
directive
controller
当然你的directive如果在controller的里面,本身就可以访问到controller的作用域(前提是没创建独立scope),直接在directive的controller中操作scope
scope
ディレクティブ
コントローラ
スコープ
内部$scope.$emit("emit",data) 外部$scope.$on("emit",function(ev,data){console.log(data)})
独立したスコープ、「=」双方向バインディングを使用し、バインドするデータを命令内のパラメータを通じて渡します。
データの使用方法はたくさんあります。
イベントのサブスクリプションとブロードキャストによる配信
$scopeの継承機能を利用して、ルートスコープのオブジェクト属性値を書き換えます
データストレージにAngularパブリックモジュールを使用し、使用する必要があるコントローラーにそれを注入します
まずは 3 つの方法について説明しましょう:
上記の答えはブロードキャスト通信を使用しており、上向きに
$emit
、下向きに$broadcast
を使用しています$emit
向上,$broadcast
向下service
共享数据,就是把同一个service
注入到directive
和controller
中,然后操作这个service
的数据就好当然你的
directive
如果在controller
的里面,本身就可以访问到controller
的作用域(前提是没创建独立scope),直接在directive
的controller
中操作scope
service
はデータを共有します。つまり、同じservice
をdirective
とcontroller
に挿入し、これを操作します。 サービス🎜🎜 🎜🎜もちろん、ディレクティブ
がcontroller
内にある場合は、controller
のスコープにアクセスできます(独立したスコープが作成されていない場合)。ディレクティブ
のコントローラ
でスコープ
を直接操作するだけです🎜🎜 🎜内部$scope.$emit("emit",data)
外部$scope.$on("emit",function(ev,data){console.log(data)})
独立したスコープ、「=」双方向バインディングを使用し、バインドするデータを命令内のパラメータを通じて渡します。
データの使用方法はたくさんあります。
リーリー リーリー リーリー