角度常见问题与服务和存储原始数据相矛盾

时间:2014-09-11 16:42:59

标签: angularjs

从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

1 个答案:

答案 0 :(得分:1)

Angular中的valueconstant适用于不会发生变化的恒定静态数据。所以,这就是你在那里存储的东西。如果它是动态但需要在多个区域中可访问的内容,请使用servicefactory

他们的判决有点含糊不清,但我认为他们的意思是,不要这样做:

function MyService () {

   this.appTitle = "My App Title";

}

然后将其注入您需要知道应用程序标题的任何地方。有更好的方法来完成这样的事情。

当然,它总是取决于你的情况。