从Angular.js文档中,它指出:
https://docs.angularjs.org/misc/faq
当然,全球状态很糟糕,你应该谨慎使用$ rootScope, 就像你希望用任何语言的全局变量一样。 特别是,不要将它用于代码,只用于数据。如果你很想 把一个函数放在$ rootScope上,把它放在一个几乎总是更好 可以在需要的地方注入,更容易注入的服务 测试
相反,不要创建一个生活中唯一目的的服务 存储并返回数据位。
我一直被告知要在服务中存储原始数据,以防止控制器膨胀。此外,angular还有angular.module("app").value()
来存储数据。那他们为什么要说don't create a service whose only purpose in life is to store and return bits of data
?
答案 0 :(得分:1)
Angular中的value
和constant
适用于不会发生变化的恒定静态数据。所以,这就是你在那里存储的东西。如果它是动态但需要在多个区域中可访问的内容,请使用service
或factory
。
他们的判决有点含糊不清,但我认为他们的意思是,不要这样做:
function MyService () {
this.appTitle = "My App Title";
}
然后将其注入您需要知道应用程序标题的任何地方。有更好的方法来完成这样的事情。
当然,它总是取决于你的情况。