使用我的PHP API的AngularJS:获取值的工厂(async:false需要替代)

时间:2015-01-28 06:10:50

标签: javascript angularjs asynchronous

两个月前我开始使用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,那么我的脚本将是异步的,我将获得一个未定义的变量..

1 个答案:

答案 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);                 
                })