为什么要使用服务?

我一直在使用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?

下一篇: Cross Controller Calculation