我正在构建一个角度应用程序,有很多ajax调用。 我需要等待每个呼叫响应从中获取数据,这就是为什么我要做的 同步。
$.ajax({
type: "POST",
url: servicePath,
cache: false,
contentType: "application/json; charset=utf-8",
dataType: "json",
async: false,
data: "{}",
success: success,
error: error
});
但这是一个问题,因为如果我调用" showPleaseWait()"(这是一个加载弹出窗口)它没有显示,因为除非ajax调用未完成,否则DOM不会更新。 它显示我是否会将我的通话设为异步,但我无法及时获取我的数据。
拜托,你能帮我解决这个问题吗?
答案 0 :(得分:0)
如果你构建一个有角度的应用程序,你应该看看https://docs.angularjs.org/api/ng/service/ $ http或https://docs.angularjs.org/api/ngResource/service/ $ resource
如果您需要一个接一个地进行ajax调用,可以查看链接承诺
var a = $http.get('/your-url');
var b = a.then(function(result) {
// use the results here ...
return $http.get('/your-other-url');
});
b.then(function(result) {
// use the results here ...
})
答案 1 :(得分:0)
对于Angular初学者来说,彻底混淆并不罕见,但是你在两个地方出错了。我会推荐一些学习。没有鼓励勺子喂养,这里有一些好的地方两个开始。
您需要了解以角度进行ajax数据调用的正确方法。这是一个很好的起点:( https://github.com/johnpapa/angular-styleguide#data-services)
在Angular(https://github.com/johnpapa/angular-styleguide#return-a-promise-from-data-calls)中使用JavaScript承诺。
这一切都是因为你说你想要使用angular.However,在jQuery中使用$ ajax函数查找how you can use promises
答案 2 :(得分:-2)
也许尝试调用你的showPleaseWait()函数,然后从角度调用$scope.$apply()发送ajax请求?它应该强制角度来刷新显示。