何时使用服务以及何时在AngularJS中出厂?

时间:2015-08-20 18:25:49

标签: angularjs

我已经阅读了大量文档,并且还针对此问题审阅了堆栈溢出帖子。 我在使用服务和工厂时仍然感到困惑。

任何人都可以解释使用真实世界的例子何时使用什么?

1 个答案:

答案 0 :(得分:1)

  

关于服务的常见问题&工厂是单身对象,   每个应用程序都会创建一次实例。

基本上,角度服务会使用new关键字返回一个对象,工厂是否确实返回了您创建的对象。

<强>服务

app.service('myService', function(){
  this.myMethod = function(){
     return 'something';
  };
})

在上述服务中,我们添加了一个方法myMethod,该方法可供注入服务的组件使用。 Service确实可以访问分配给this上下文的所有属性。

<强>工厂

app.factory('myService', function(){
  //here you can do some initial work before creating an service object.
  //which is very advantageous part of service.
  var configuredVariable = 'configured';
  return {
     myMethod : function(){
         return 'something'+ configuredVariable;
     };
  }
})

在创建对象之前,您可以拥有控制器,在从服务返回对象之前,您可以进行一些配置类型的设置。

More detailed answer here

<强>摘要

  

何时使用服务以及何时在agularJS中出厂?

任何时候,如果您不想返回可配置对象,请使用服务。如果您要配置对象,则应选择factory