我有一个工厂,如何在getAccountInformation()函数中调用'getAccountDetails'服务。
我尝试了以下方式,但没有工作。
f68ffb5 commit 6
...
d294fac commit 1
AccountService.getAccountDetails.getAccountDetailsService
答案 0 :(得分:1)
我建议您从返回的提供程序中定义代码依赖项:
tellerApp.factory('AccountService',['$resource', function ($resource) {
var getAccountDetails = $resource(XXX, {}, {getAccountDetailsService: {}});
return {
getAccountDetails : getAccountDetails,
getAccountInformation: function($scope, number, transaction, index){
getAccountDetails.getAccountDetailsService({number : number}).$promise.then(function(response){
...
})
}
};
}]);
或者,在对象内部,您也可以使用this
来引用当前对象,而不是使用AccountService.getAccountDetails
,您应该使用this.getAccountDetails
。
tellerApp.factory('AccountService',['$resource', function ($resource) {
return {
getAccountDetails : $resource(XXX, {}, {getAccountDetailsService: {}});,
getAccountInformation: function($scope, number, transaction, index){
this.getAccountDetails.getAccountDetailsService({number : number}).$promise.then(function(response){
...
})
}
};
}]);
另外,请注意,因为您的命名惯例令人困惑(getAccountDetails
不是一个功能,因为您不会使用()
来调用它,但它的名称为" get& #34;,getAccountServices
首先被定义为一个对象,但稍后使用相同的名称进行功能...),特别是如果你想要一个准确的答案;)
答案 1 :(得分:0)
这应该可行,但还没有测试过。
tellerApp.factory('AccountService',['$resource', function ($resource) {
var AccountService = {
getAccountDetails: $resource(XXX, {}, {
getAccountDetailsService: {}
}),
getAccountInformation: function($scope, number, transaction, index){
AccountService.getAccountDetails.getAccountDetailsService({number : number}).$promise.then(function(response){
}
};
}
return AccountService
}]);