AngularJS $广播和隔离范围

时间:2014-05-27 14:33:31

标签: javascript angularjs events angularjs-directive

所以我有两个指令splitterpane可以像这样使用:

<splitter>
   <pane></pane>
   <pane></pane>
</splitter>
<splitter>
</splitter>

我希望他们都拥有孤立或继承的范围。但是我也希望能够在它们之间$broadcast(或等效),这样如果我在一个指令的范围内$broadcast,则会在所有嵌套指令上触发相同的事件正在倾听而不是它的父母或兄弟姐妹(这里没有$rootScope)。

怎么会这样做呢?我的解决方案必须是未来友好的,因为我将在混音中添加更多指令,同时也会听取此事件。

1 个答案:

答案 0 :(得分:3)

要进行指令间通信,最好是使用父指令控制器并在this中公开方法。

然后你只需要在你的children指令(require: '^splitter')中要求它,并且父控制器将作为你的link函数的第四个参数注入。

有关详细信息,请参阅有关Creating Directives that Communicate的官方文档。