将数据从一个指令传递到另一个指令

Zed*_*Zed 4 angularjs angularjs-directive

我有一个使用自定义模板的指令,我想将该指令中的数据传递给另一个指令,并寻找最佳方法.所以,我想当指令中的数据发生变化时,指令2会得到通知(观察者?),并对其采取行动.到目前为止,只有控制器内部的控制器方法和控制器方法(来自指令一)中的控制器内部的观察器才有意义.有没有更好的方法呢?

--------------           --------------
| directive 1 |---data-->| directive 2 |
|             |          |             |
---------------          --------------
Run Code Online (Sandbox Code Playgroud)

Atr*_*opo 6

您可以在rootScope上使用$ broadcast:

在第一个指令:

$rootScope.$broadcast("NEW_EVENT", data);
Run Code Online (Sandbox Code Playgroud)

在另一个指令:

scope.$on("NEW_EVENT", function(event, data){
           //use the data
        });
Run Code Online (Sandbox Code Playgroud)

看看这个Understanding Angular的$ scope和$ rootScope事件系统$ emit,$ broadcast和$ on