Javascript AngularJS-为什么要使用服务?
我一直在一个新项目中使用AngularJS,我非常喜欢它。如此之多,我想我会用它做我未来所有的网络项目。我已经读了很多关于Angular中不同类型的提供者的书,并且使用了很多工厂和价值观 我理解服务和工厂之间的区别,因为服务是传递给module.Service()的函数的实例,工厂是传递给module.Factory()的函数的返回值(在我的例子中通常是对象文字)。我真的不明白你为什么需要使用服务 服务的功能似乎与从工厂函数返回带有属性和方法的对象文字相同。例如:Javascript AngularJS-为什么要使用服务?,javascript,angularjs,Javascript,Angularjs,我一直在一个新项目中使用AngularJS,我非常喜欢它。如此之多,我想我会用它做我未来所有的网络项目。我已经读了很多关于Angular中不同类型的提供者的书,并且使用了很多工厂和价值观 我理解服务和工厂之间的区别,因为服务是传递给module.Service()的函数的实例,工厂是传递给module.Factory()的函数的返回值(在我的例子中通常是对象文字)。我真的不明白你为什么需要使用服务 服务的功能似乎与从工厂函数返回带有属性和方法的对象文字相同。例如: module.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);
}
};
});
工厂增加了一项功能,可以在遇到return语句之前执行一些操作
有人能解释一下他们在服务和工厂使用之间的界限吗
如果您想执行以下操作,请提前感谢,如中的文档所示:
myApp.factory('unicornLauncher', ["apiToken", function(apiToken) {
return new UnicornLauncher(apiToken);
}]);
然后你可以做:
myApp.service('unicornLauncher', ["apiToken", UnicornLauncher]);
医生说这是
简单多了
但我不得不说,在我看来,我认为这并不清楚,在这种情况下,节省一行代码是不值得的。为了清晰和灵活,我现在总是使用工厂。可能与那篇文章重复,或者我读过那篇文章,我知道区别是什么,但就是不明白为什么你会使用服务而不是工厂。我正在寻找一个工厂不适合的服务用例,我的方向正好相反。我倾向于使用服务,而不是使用工厂。无论什么能让你的船浮起来。这应该对你有用:我认为这是一个好问题,但有点基于观点。我想更多的帮助可以在programmers.stackexchange.com上找到。在那里你可以找到关于各种主题的好建议/机会,我同意。我还认为,
UnicornLauncher
可以是一个对象文本。当你认为所有的角度提供者都是独裁者时,我看不出创建<代码>新的UnnRunnLunter < /C>的优势。