让两个指令互相交流的最佳方法是什么?可以说我有以下设置:
<drop-uploader></drop-uploader>
<drop-uploader></drop-uploader>
<progress-bar></progress-bar>
了解&#34;上传者的最佳方式&#34;指令通知&#34;进度条&#34;指示?是在rootScope上使用事件或使用服务的最佳方法吗?有没有办法将指令作为另一个指令的属性来访问其范围?像这样......
<drop-uploader progress-bar="thisone"></drop-uploader>
<drop-uploader progress-bar="thisone"></drop-uploader>
<progress-bar name="thisone"></progress-bar>
答案 0 :(得分:1)
在控制器之间共享数据的选项(在文档中检查“require”)但据我所知,你不能使用该方法在兄弟姐妹之间共享数据。它必须是父母/孩子(如果我错了,有人会纠正我。)
但您可以使用服务共享数据。无论有多少不同的控制器/服务/指令调用它,每个服务只有一个实例,因此将数据设置为一个将更新另一个。
此处列出的溶剂适用于指令和控制器:Angularjs, passing scope between routes
答案 1 :(得分:1)
我会使用$ rootScope $broadcast
来寻找事件,因为所有其他机制都会将状态引入系统,您需要保持同步状态。
使用rootscope
上的属性或创建具有共享变量的服务。
此外,如果场景符合事件模式,那么$broadcast
会更好。