我需要有两个基于元素的指令。
两者都有自己的用户界面,因此我使用了限制:“E”
我需要一种将数据从一个/或多个指令传递到另一个指令的方法
发送数据的两个指令位于两个不同的控制器中(一个在页头,一个在页体),因此尝试使用
scope: {
onNotify : "&"
}
由于范围不同,因此变得混乱。
我能想到的最好的方法是“消息总线”模式。我介绍了第三个(基于属性的)指令,它公开了一个“api”
api = {
addListener : function(event, fn),
publish : function(event, data)
}
jsfiddle在这里:http: //jsfiddle.net/concept/dELCv/
我的问题是:
- 这实际上是让两个基于元素的指令进行通信的唯一方法吗?
- 范围感觉不对,因为我不得不使用 $(document).data("fc-bus.api", api) 在控制器之间共享 api 实例。有人可以建议在控制器之间共享 API 的更好方法吗
它可以工作,我想这很好,但是对于全局范围的 api,它真的感觉不是很“棱角分明”
我期待您的所有回答和评论