gpt4 book ai didi

angularjs - AngularJs从自身调用内部服务功能

转载 作者:行者123 更新时间:2023-12-04 06:47:54 25 4
gpt4 key购买 nike

我已经建立了一个简单的服务,可以发出多个请求。该服务有两种方法。我无法在服务内部从另一个方法调用一个方法。

Plunkr:http://plnkr.co/edit/2fERik4uTxbxlVOhncMd?p=preview

app.factory('Report', ['$http', function($http){
var Authors = {

reports : [],
requests :[{'url':'data/data.cfm','response':'first'},
{'url':'data.json','response':'second'},
{'url':'data.json','response':'third'},
{'url':'data.json','response':'forth'}],


getReport : function(target, source, response, callback) {
return $http({ url:source,
method:"POST",
params:{url : target}
}).success(function(result) {
$scope.progress = response;
angular.extend($scope.user, result)
console.log($scope.user)
}
).error(function(error){
$scope.progress = response
})
},

startQueue : function (target) {
var promises = [];
this.requests.forEach(function (obj, i) {
console.log(obj.url)
promises.push(getReport(target, obj.url, obj.response, function(value){
reports.push(value);
console.log(value)
}));
});
$q.all(promises).then(function () {
console.log("Finito");
},function(error){
console.log("errori")
});
}

};

return Authors;
}])

当我尝试从startQueue内部调用getReport时出现错误:未定义getReport。

最佳答案

将您的工厂更改为:

app.factory('Report', ['$http', function($http){
var Authors = {

reports : [],
requests :[{'url':'data/data.cfm','response':'first'},
{'url':'data.json','response':'second'},
{'url':'data.json','response':'third'},
{'url':'data.json','response':'forth'}],
};

Authors.getReport = function(target, source, response, callback) {

};
Authors.startQueue = function (target) {

};

return Authors;
}])

关于angularjs - AngularJs从自身调用内部服务功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18853797/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com