У меня есть простой сервис, который выполняет несколько запросов. Услуга имеет два метода. Я не могу вызывать один метод из другого внутри службы.AngularJs вызывает внутреннюю функцию обслуживания от себя
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;
}])
Когда я пытаюсь вызвать getReport внутри startQueue я получаю сообщение об ошибке: getReport не определен.
Спасибо, это сработало. Но почему я получил ошибку: не могу вызвать метод «все» неопределенного, см. Обновление plunkr: http://plnkr.co/edit/2fERik4uTxbxlVOhncMd?p=preview – Tropicalista
Я понимаю, что это были годы спустя, но это помогло бы улучшить это ответьте, показывая не только хороший код, но и подчеркнув, что из старого кода вы изменили, чтобы люди могли быстро увидеть, что вы исправили. – redfox05