让我们说我有指令(组件)。
我想在它们之间共享数据。
类似于从服务器接收错误,然后将此错误数据保存在$scope
中并打印在每个组件中。
但是,如果数据来自组件A,则打印的数据在组件B上将保留为空-因为它们之间不会共享数据。
为了使其共享,我首先需要$emit
来自组件A的数据和$on
(*接收)组件B上的数据。
这些都是在AngularJS中广播的。
我应该一直使用这种机制来解决问题,这种机制有缺点-就像使用包含“变量名”(具有动态名称的函数,基于大小写的函数)的共享组件时一样。
OR
我应该使用简单的$ rootScope全局大变量同时存储所有“微小”范围的所有数据吗?
使用$ rootScope可以像“缓存”一样进行操作-例如:$rootScope.list = response.data.list
(某些从远程服务器响应的列表)可以告诉我,由于已被请求,因此我不应该再次请求该列表。
我还可以添加时间戳记,以便我可以在30秒后重新询问该列表,即使该请求已被请求。
你怎么看?
我应该使用broadcasts
,还是应该避免使用$rootScope
共享库?