【发布时间】:2016-05-19 18:24:38
【问题描述】:
我有一个数据服务文件,我想将其分解为更小的模块/部分。目前,代码如下:
angular
.module('myapp')
.factory('DataService', DataService)
DataService.$inject = ['$http'];
function DataService($http) {
var service = {
methodOne: methodOne,
methodTwo: methodTwo,
methodThree: methodThree
};
return service;
}
我想要做的:把这个文件分成另外三个文件,把每个方法放在各自的文件中。例如,有一个通用 DataService 文件和另外 3 个包含 3 个方法的实际实现的文件。我正在尝试创建如下所示的不同工厂,但我不确定这是否正确。调用它时我无法让它工作
angular
.module('myapp')
.factory('DataService', DataService)
DataService.$inject = ['$http'];
function DataService($http) {
var service = {}; //creating empty object
return service;
}
//File 1
angular
.module('myapp')
.factory('dataServiceOne', function(DataService){
var extended = angular.extend(DataService, {})
extended.methodOne = function() {
console.log('working method one')
}
return extended;
});
//File 2
angular
.module('myapp')
.factory('dataServiceTwo', function(DataService){
var extended = angular.extend(DataService, {})
extended.methodOne = function() {
console.log('working method two')
}
return extended;
});
//File 3
angular
.module('myapp')
.factory('dataServiceThree', function(DataService){
var extended = angular.extend(DataService, {})
extended.methodOne = function() {
console.log('working method three')
}
return extended;
});
然后在应用程序的其他地方调用它。给我一个错误,说 methodOne 不是函数。
...
DataService.methodOne() //this is implementation
...
【问题讨论】:
标签: angularjs angularjs-directive angularjs-scope angular-ui-router angular-services