我一直在读wrox角书。在书中,作者描述了一种在控制器之间共享数据的方法是:
与在Service上公开对象和让angular的两种方式进行数据绑定做所有繁重的工作相反。为什么有人会采用“根范围发布/订阅”方法,而不是在服务上公开对象?
这是一个有趣的问题。
首先,我们应该考虑各个级别的差异:
范围
$rootScope
可扩展性
$rootScope -我们具有有限的选项来添加其他逻辑以对该值进行操作(我们可以定义另一个全局函数)
封装形式
$rootScope -$ rootScope中定义的所有对象将在所有模块中可见
模块化
$rootScope -全局变量不在模块空间中
保养中
$rootScope-很难找到哪些组件使用了我们的$rootScope变量。
捆绑
$rootScope -在多个控制器中的一个变量中设置双向绑定很容易 $rootScope
在我看来,这仅对创建真正的全局变量有用。