我开始使用AngularJS,我看到人们正在谈论“service()vs factory()”的困境,但我找不到任何关于第一个的文档。
那么,我们应该强迫自己使用工厂()吗?或者它就像一个别名?
提前致谢
答案 0 :(得分:2)
当我开始使用角度时,我希望我读过一些句子。
提供者是获得new
编辑的功能。并且可以在该状态下注入配置块。
当它被使用的时间(即在其他地方注入)$get
被调用时,其返回值就是你的提供者。
服务是一种获得new
编辑功能的功能。
工厂是一个获得new
编辑和执行的功能。它的返回值是你的工厂。
这三个不同的术语只是为了区分他们创建的方法。
每种方法都有一些好处:
答案 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的语言将工具指向更多类,否则工厂通常会很好。
提供商只是一个可以配置一次的服务。换句话说,如果在初始化配置块中的模块时需要设置某些内容,请使用提供程序。这允许您在将配置存储为要使用的对象之前调整配置。
如果能回答你的问题,请告诉我们!