Angular.js是服务单身还是每次创建?

时间:2015-02-16 10:24:11

标签: angularjs service factory

我对Angular.js的工厂和服务感到困惑。

在这个问题中:

angular.service vs angular.factory

它表示使用new关键字创建服务。

在这个问题中:

Confused about Service vs Factory

它说服务是“单身人士”。

我的问题是:

当您将“服务”作为依赖注入参数添加到另一个模块时,Angular每次都会创建一个新服务吗?或者它是否真的是单身(如在一个中创建,然后在任何地方提供该特定实例)?

2 个答案:

答案 0 :(得分:2)

Angular服务是:

  • Lazily实例化 - Angular仅在应用程序组件依赖时实例化服务 在它上面。
  • 单身人士 - 依赖于服务的每个组件都会获得对单个实例的引用 由服务工厂生成。

Github官方文件。

答案 1 :(得分:0)

“所有AngularJS服务都是单例。这意味着每个注入器只有一个给定服务的实例。”

读:

John Papa style guide.(除了回答您的问题之外,还是与AngularJS合作的好建议。)

AngularJS docs.