我还很陌生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下定义的方法。也许像这样:
BasicService
factory('ExtendedService', function($http){ var ExtendedService = BasicService(); ExtendedService['method_four'] = function(){/* code for method four */} return ExtendedService; }
您ExtendedService应该注入BasicService以便能够访问它。旁边BasicService是对象文字,因此您实际上不能将其称为函数(BasicService())。
ExtendedService
BasicService()
.factory('ExtendedService', function($http, BasicService){ BasicService['method_four'] = function(){}; return BasicService; }