2013-11-19 5 views
1

Я пишу сценарий для заполнения базы данных приложений с помощью Dummy Data, так как я устаю вручную добавлять пользователей/друзей/etc, я делаю это по nesting AngularJS $ http-запросы, которые говорят с моим API-интерфейсом приложения/Rest service ...

Пока все работает хорошо, но теперь мне нужно циклически переадресовывать вызовы, например ... обратите внимание, что это 3-й вложенный $ HTTP называют

// 3. Create Auto Friend For that User 
for (var i = 1; i < 6; i++) { // 6 is just a given number, it could be 1 or 100.... 
    ($http({method: 'POST', url: '/path/to/rest/friend', data: {"name":"Auto Friend " + i}}) 
     .then(function (response) { 
     console.log("friend created"); 
     console.log(response); 

     }, function() { 
     console.log('Whoops...'); 
     }))(i); // THIS IS LINE 69 
} 

настоящее время я получаю следующее сообщение об ошибке ...

TypeError: object is not a function 
    at http://localhost:9000/assets/js/src/app/auth/controllers/AuthCtrl.js:69:40 
    at wrappedCallback (http://localhost:9000/assets/js/vendor/bower/angular/angular.js:10549:81) 
    at http://localhost:9000/assets/js/vendor/bower/angular/angular.js:10635:26 
    at Scope.$eval (http://localhost:9000/assets/js/vendor/bower/angular/angular.js:11528:28) 
    at Scope.$digest (http://localhost:9000/assets/js/vendor/bower/angular/angular.js:11373:31) 
    at Scope.$delegate.__proto__.$digest (<anonymous>:844:31) 
    at Scope.$apply (http://localhost:9000/assets/js/vendor/bower/angular/angular.js:11634:24) 
    at Scope.$delegate.__proto__.$apply (<anonymous>:855:30) 
    at done (http://localhost:9000/assets/js/vendor/bower/angular/angular.js:7635:45) 
    at completeRequest (http://localhost:9000/assets/js/vendor/bower/angular/angular.js:7801:7) 

Я внес некоторые изменения в мой код, но ничего не работает, я предполагаю, что мой подход неправильный, а не код (но я мог ошибаться там). Кто-нибудь получил идею или рекомендацию о том, как я могу преодолеть эту проблему?

+1

Какова цель упаковки '$ http' внутри()? – AlwaysALearner

+0

Чтобы создать закрытие - если вы этого не сделаете, значение i может измениться до того, как фактически будет выполнен http get. –

+0

Привет, CodeHater, я пытался заморозить значение i –

ответ

3

Я думаю, что я, возможно, ответил на это сам, я не обернуть код в function ...

for (var i = 1; i < 6; i++) { // 6 is just a given number, it could be 1 or 100.... 
    (function(i){ 
    http({method: 'POST', url: '/path/to/rest/friend', data: {"name":"Auto Friend " + i}}) 
     .then(function (response) { 
     console.log("friend created"); 
     console.log(response); 

     }, function() { 
     console.log('Whoops...'); 
     }); 
     })(i); 
} 

В следующий раз я открываю глаза, прежде чем отправлять, спасибо за комментарии ...

Смежные вопросы