在AngularJs中返回服务的最佳方法是什么?为什么?

时间:2015-08-06 10:02:31

标签: javascript angularjs

我有以下两个代码:

angular.module('servicefunction',[]).
factory('checkservice',[function(){ 
    this.x = function(num){
        return num;
    }
 return this;
}]);

下一个创建一些对象并返回它:

angular.module('servicefunction',[]).
factory('checkservice',[function(){ 
   var x = {};
   x.number = function(){
  }
  return x;
}]);

Service返回的最佳方式是什么?为什么?这有什么不同吗?

2 个答案:

答案 0 :(得分:0)

这取决于,但基本上我使用2个版本

// useful for single function, called as checkServ()
angular.module('serv',[]).
    factory('checkServ',[function(){ 
      return function(){
          //stuff
          //can be called with arguments
      }
}]);
// called as checkServ.func() or checkServ.prop
angular.module('serv',[]).
    factory('checkServ',[function(){ 
      return {
          prop: 'data',
          func: function() {
               //stuff here
          }
      }
}]);

答案 1 :(得分:0)

这是一个惯例问题。坚持使用最符合您编码风格的产品。

您的每个示例都使用工厂模式,并且角度服务是围绕工厂模式构建的。您可以使用的另一种方法是:

angular.module('servicefunction',[]).
factory('checkservice',[function(){ 
   return {
      getX : function() {
          return x;
      }
   }
}]);