为什么要使用服务?
我一直在使用AngularJS进行一个新项目,我非常喜欢它。 所以我想我会用它来做所有我未来的Web项目。 我已经在Angular中对不同类型的Provider进行了大量的阅读,并且使用了工厂和值。
只要Service是传递给module.service()的函数的实例并且Factory是传递给module.factory()的函数的返回值(通常是一个对象),我理解服务和工厂之间的区别在我的情况字面)。 我真的不明白为什么你需要使用服务。
服务的功能看起来与从工厂函数返回对象文字具有属性和方法相同。 例如:
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);
}
};
});
工厂具有在遇到return语句之前能够执行某些操作的附加功能。
任何人都可以解释他们在服务和工厂使用之间的界限吗?
提前致谢
如https://docs.angularjs.org/guide/providers#service-recipe中的文档所示,如果您想要执行以下操作:
myApp.factory('unicornLauncher', ["apiToken", function(apiToken) {
return new UnicornLauncher(apiToken);
}]);
然后你可以做:
myApp.service('unicornLauncher', ["apiToken", UnicornLauncher]);
文档说这是
简单得多!
但我不得不说,在我看来,我不认为这很清楚,在这种情况下保存一行代码是不值得的。 为了清晰和灵活,我现在总是使用工厂。
链接地址: http://www.djcxy.com/p/77545.html上一篇: Why use a service?