我在推理组件通信时遇到问题。我试图推理并失败的主要问题:我应该使用什么 - $watch或$on ($broadcast/$emit) 来建立组件之间的通信?
我看到三个基本案例:
控制器+指令。他们使用 $scope 双向绑定自然地进行通信。我只是使用一些对象()将封装了一些共享状态的服务放在 $scope 中
$scope.filter = {}
。这种方法对我来说似乎很合理。控制器 + 控制器。我使用 DI 注入具有封装状态的单例服务以在控制器之间进行通信。这些服务受限于使用先前方法的指令。这给了我开箱即用的数据绑定。
指令+指令。这是我推理的盲点。我有指令,驻留在不同的范围内,在同一范围内等。我有必须反映所有更改的指令(考虑滑块+图表)和必须触发 http 请求的指令(考虑选择输入)。
所以,问题是:
- 我应该使用什么 - $watch或$on ($broadcast/$emit) 来建立组件之间的通信?
- 我应该倾向于在指令到指令的通信中使用$watch吗?
- 或者我应该倾向于在指令到指令的情况下使用$broadcast吗?
- 使用injection+binding或injection+events共享状态更好吗?