$http.post 仅在 angular.forEach 的最后一个循环中触发
$http.post triggered only on the last loop on angular.forEach
我在 angularjs 中的 forEach 循环上发出 $http.post 请求时遇到问题。仅在最后一个循环 (obj.dtype == 'Install') 中触发 $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();
});
我认为 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
的语法。
我在 angularjs 中的 forEach 循环上发出 $http.post 请求时遇到问题。仅在最后一个循环 (obj.dtype == 'Install') 中触发 $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();
});
我认为 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
的语法。