我在angularjs中的forEach循环上发出$ http.post请求时遇到问题。仅在最后一个循环(obj.dtype =='安装')上触发$ http.post。如何使$ http.post在每个循环中都能正常工作?
angular.forEach($scope.data, function(obj, i){
if(obj.dtype == 'Remove'){
$http.post('url1').success();
} else if(obj.dtype == 'Install'){
$http.post('url2').success();
}
});
提前致谢。
解决方案:
angular.forEach($scope.data, function(obj, i){
if(obj.dtype == 'Remove'){
url = 'url1';
dataToUpload = {};
} else if(obj.dtype == 'Install'){
url = 'url2'
dataToUpload = {};
}
$http.post(url, dataToUpload).success();
});
答案 0 :(得分:0)
我认为AngularJs $http
POST调用没有错。
以下代码适用于我的POST被触发四次。
app.controller('MainCtrl', ['$scope','$http', function($scope, $http) {
$scope.name = 'World';
$scope.data = ["Data1","Data2","Data3","Data4"]
angular.forEach($scope.data, function(obj, i){
$http({method:'POST', url: 'http://httpbin.org/post', data: obj}).
success(function(data, status) {
$scope.status = status;
$scope.data = data;
}).
error(function(data, status) {
$scope.data = data || "Request failed";
$scope.status = status;
});
});
}]);
我建议您查看$scope.data
的内容和$http
的语法。