一尘不染

我该如何扩展服务

angularjs

我还很陌生angularjs,因此无法找到任何文档或示例。我要做的是扩展基本服务,以便可以使用其他服务在基本服务下定义的方法。例如,说我有如下基本服务。

angular.module('myServices', []).

    factory('BasicService', function($http){
        var some_arg = 'abcd'
        var BasicService = {
            method_one: function(arg=some_arg){ /*code for method one*/},
            method_two: function(arg=some_arg){ /*code for method two*/},
            method_three: function(arg=some_arg){ /*code for method three*/},
        });
        return BasicService;
    }   
);

现在,我想定义一个从上述扩展的扩展服务,BasicService以便可以使用扩展服务中BasicService下定义的方法。也许像这样:

    factory('ExtendedService', function($http){
        var ExtendedService = BasicService();
        ExtendedService['method_four'] = function(){/* code for method four */}
        return ExtendedService;
    }

阅读 366

收藏
2020-07-04

共1个答案

一尘不染

ExtendedService应该注入BasicService以便能够访问它。旁边BasicService是对象文字,因此您实际上不能将其称为函数(BasicService())。

.factory('ExtendedService', function($http, BasicService){
  BasicService['method_four'] = function(){};
  return BasicService;
}
2020-07-04