为什么service()方法没有官方文档?

时间:2014-01-22 20:24:17

标签: angularjs service factory

我开始使用AngularJS,我看到人们正在谈论“service()vs factory()”的困境,但我找不到任何关于第一个的文档。

那么,我们应该强迫自己使用工厂()吗?或者它就像一个别名?

提前致谢

2 个答案:

答案 0 :(得分:2)

当我开始使用角度时,我希望我读过一些句子。

  • 提供者是获得new编辑的功能。并且可以在该状态下注入配置块。

    当它被使用的时间(即在其他地方注入)$get被调用时,其返回值就是你的提供者。

  • 服务是一种获得new编辑功能的功能。

  • 工厂是一个获得new编辑和执行的功能。它的返回值是你的工厂。

这三个不同的术语只是为了区分他们创建的方法。

每种方法都有一些好处:

  • 提供商: 作为角度库或api服务的配置
  • 服务:'类似'宾语。可能用于存储共享应用程序数据
  • factory:一个数据检索对象,用于处理数据的获取和保存..也许可以进入您的服务。

答案 1 :(得分:0)

将类或函数构造函数传递给服务。 Angular将相当于在其上调用“new”。

传递一个将您想要的对象返回工厂的函数。 Angular将接受您传递的内容,调用它并使用返回值。

例如,工厂:

function(dep1, dep2) {
   return {
       total: dep1.x + dep2.x 
   };
}

服务:

function MyClass(dep1, dep2) {
   this.total = dep1.x + dep2.x 
}

除非您使用类似TypeScript或CoffeeScript的语言将工具指向更多类,否则工厂通常会很好。

提供商只是一个可以配置一次的服务。换句话说,如果在初始化配置块中的模块时需要设置某些内容,请使用提供程序。这允许您在将配置存储为要使用的对象之前调整配置。

如果能回答你的问题,请告诉我们!