角度中的多个$ http请求

时间:2016-04-22 14:48:03

标签: javascript angularjs loops asynchronous

我有一个按钮,当我点击它时,我的代码会在第一次点击时通过angular.forEach发送所有选定项目的HTTP请求我没有得到任何错误回复。从第二次单击按钮,当我的代码尝试发送$ http请求的第二部分时,我有一个错误。

error    Error: undefined is not an object (evaluating 'apiFactory.likeRequest')

这是我的控制者:

app.controller('dashboardCtrl',
  ['$rootScope', '$scope', 'store', '$state','apiFactory','loginFactory','$http',
 function($rootScope, $scope, store, $state, apiFactory, $http){

 apiFactory.likeRequest(item["media_id"], data)
   .then(function (response) {
                  console.log(response);
                 $scope.pressedIndexesObject.splice(index, 1);
            }, function (error) {
                  console.log(JSON.stringify(error));
                 $scope.pressedIndexesObject.splice(index, 1);
            });
});

这是我的要求工厂:

angular.module('instagrow')
    .factory('apiFactory', ['$http', function ($http) {
 var dataFactory = {};
      dataFactory.likeRequest = function (media_id,data) {
                return  $http.post('https://api.instagram.com/v1/media/'+ media_id + '/likes',  data, config);
            };

       return dataFactory;
    }]);

我试图在没有工厂或关闭作为参数的情况下这样做,但例外仍然存在。

更新 尝试的另一种类型的请求是每个项目的$ http单个实例,如下所示:

    angular.forEach($scope.pressedIndexesObject, function(item) {
    var media = item
        console.log('im indexed' +JSON.stringify( $scope.pressedIndexesObject));

   $http.post('https://api.instagram.com/v1/media/'+ media["media_id"] + '/likes',  data)
   .then(function (response) {
                               console.log(response);

                 $scope.pressedIndexesObject.splice(index, 1);
            }, function (error) {
                                             console.log(JSON.stringify(error));

                 $scope.pressedIndexesObject.splice(index, 1);
            });

});

0 个答案:

没有答案