我一直在一个新项目中使用AngularJS,我真的很喜欢它。所以我想我会用它来做我未来所有的网络项目。我对Angular中的不同类型的提供者做了大量的阅读,并使用了大量的工厂和值。
我真的不明白为什么你需要使用一个服务。
Service的功能似乎等同于从工厂函数返回具有属性和方法的对象文字。例如:
module.service('MyService', function () {
this.value = 'Hello';
this.sayValue = function () {
alert(this.value);
};
});
module.factory('MyFactory', function () {
// Can also do some things before return statement
return {
value: 'Hello',
sayValue: function () {
alert(this.value);
}
};
});工厂还增加了一些功能,能够在遇到返回语句之前执行一些操作。
谁能解释一下他们在服务和工厂使用之间的界限是什么?
提前感谢
发布于 2014-08-09 18:55:33
如https://docs.angularjs.org/guide/providers#service-recipe上的文档所示,如果您想要执行以下操作:
myApp.factory('unicornLauncher', ["apiToken", function(apiToken) {
return new UnicornLauncher(apiToken);
}]);然后你可以这样做:
myApp.service('unicornLauncher', ["apiToken", UnicornLauncher]);医生说这是
简单多了!
但我不得不说,在我看来,这并不清楚,在这种情况下,节省一行代码是不值得的。为了清晰和灵活,我现在总是使用工厂。
https://stackoverflow.com/questions/25213374
复制相似问题