I created a simple service that performs several requests. The service has two methods. I cannot call one method from another inside the service.
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; }])
When I try to call getReport from inside startQueue, I get an error: getReport is not defined.
angularjs
Tropicalista Sep 17 '13 at 15:23 2013-09-17 15:23
source share