我正在尝试在像这样的响应服务器之后进行服务器调用
$http.post($scope.serviceSave, {
'person': $scope.person
}).success(function(data){
$http.get($scope.serviceList);
});
但是当我尝试它时我得到了
Error: $digest already in progress
并没有提出要求。
我正在使用像这样的jquery
<a href="#" ng-click="setContent('/people/list')" >People</a>
$scope.setContent = function(service){
$http.get(service);
}
然后
$http.post($scope.serviceSave, {
'person': $scope.person
}).success(function(){
$("a:contains(People)").click();
});
我可以发出请求,强制点击,但我正在
Error: $digest already in progress
还
请问,什么是正确的表格?答案 0 :(得分:0)
我试图在JsFiddle
中重现这一点,但却无法做到这一点。看起来在另一个回调中调用一个请求是完全有效的。您是否为每个请求使用$http
服务?不这样做是在寻找麻烦。
Working example(请记住,我正在解决那里的模拟服务,这可能是一个因素):
$http.post("/echo/json/").success(function() {
console.log("finished 1st");
$http.get("/echo/json/").success(function() {
console.log("finished 2nd");
});
});
然而,从另一个回调中调用一个回调被认为是一种不好的做法。如前所述(由某人),使用延迟更好:
var deferred = $q.defer();
var promise = deferred.promise;
$http.post("/echo/json/").success(function() {
console.log("finished 1st");
deferred.resolve();
});
promise.then(function(){
$http.get("/echo/json/").success(function() {
console.log("finished 2nd");
});
});
例如上面的