两个月前我开始使用AngularJS构建自己的webapp,问题是我发现async:false已被弃用,我需要将其替换为可行的东西:)。
因此,让我向您展示我的剧本的例子:
getContent:function(ticketid){
if(sessionService.islogged)
{
$.ajaxSetup({async:false});
var response = null;
var result = $.post( "data/ticket.php",{Action:'getContent',ticketid:ticketid}, function(data) {
response = data;
});
$.ajaxSetup({async:true});
return response;
}
},
当我在控制器中使用此功能时的例子
$scope.ticket = JSON.parse(ticketService.getContent(sessionService.get('ticketID')));
正如您所看到的,我将POST请求的结果存储在一个数组中但如果我删除了async:false,那么我的脚本将是异步的,我将获得一个未定义的变量..
答案 0 :(得分:0)
将回调函数作为变量传递。
getContent:function(ticketid,successCallback){
if(sessionService.islogged)
{
$.ajaxSetup({async:false});
var response = null;
var result = $.post( "data/ticket.php",{Action:'getContent',ticketid:ticketid}, successCallback);
$.ajaxSetup({async:true});
return response;
}
},
并调用getContent函数
sessionService.get('ticketID',function(data) {
$scope.ticket = JSON.parse(data);
})