如果在控制器之间共享数据的正确方法是使用工厂/服务,$ rootScope的目的是什么?
答案 0 :(得分:8)
$rootScope
存在,但它可以用于邪恶Angular中的范围形成层次结构,原型继承自树顶部的根范围。通常这可以忽略,因为大多数视图都有自己的控制器,因此也有范围。
有时,您希望为整个应用程序提供全局数据。对于这些,您可以注入$rootScope
并在其上设置值,就像任何其他范围一样。由于范围继承自根范围,因此这些值可用于附加到ng-show
等指令的表达式,就像本地$scope
上的值一样。
当然,全球状态很糟糕,你应该谨慎地使用$rootScope
,就像你希望用任何语言的全局变量一样。特别是,不要将它用于代码,只用于数据。如果您想在$rootScope
上添加一个函数,那么将它放在一个可以在需要的地方注入的服务并且更容易测试时,几乎总是更好。
相反,不要创建一个服务,其唯一目的就是存储和返回数据位。
答案 1 :(得分:4)
根据我的理解。 你可以在多个地方使用$ rootScope。
我希望这会有所帮助。
由于