我有一个AngularJS模型,我在其中创建了一个名为myService的模块,用于保存我在整个应用程序中使用的一些常用代码。我的普通工厂是我一直在添加所有方法的地方,现在我想把它拆分并给它们好名字。
我的很多方法互相调用,所以如何调用另一个工厂中的方法?
angular.module('myService', ['ngResource'])
.factory('test2', ($window) ->
return {
foobar: () ->
Common.test()
}
)
.factory('Common', ($window) ->
return {
test: () ->
alert 'testing'
}
)
答案 0 :(得分:12)
你只需要注射它:
.factory('test2', function (Common) {
return {
foobar: function () {
Common.test();
}
};
})
答案 1 :(得分:0)
这就是我所做的并且工作得很好。从Session调用SessionPresenters。您需要将SessionPresenters作为参数传递给工厂实现函数。
angular.module('tryme3App')
.factory('Session', function ($resource, DateUtils, SessionPresenters) {
return $resource('api/sessions/:id', {}, {
'query': { method: 'GET', isArray: true},
'get': {
method: 'GET',
transformResponse: function (data) {
data = angular.fromJson(data);
var result = SessionPresenters.get({id: data.id})
data.presenters = result;
return data;
}
},
'update': { method:'PUT' }
});
}).factory('SessionPresenters', function ($resource, DateUtils) {
return $resource('api/session.Presenters/:id', {}, {
'query': { method: 'GET', isArray: true},
'get': {
method: 'GET', isArray: true
},
'update': { method:'PUT' }
});
});