首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在angular js中进行同步http请求

如何在angular js中进行同步http请求
EN

Stack Overflow用户
提问于 2014-11-05 14:14:02
回答 2查看 55.3K关注 0票数 20

如何在AngularJS中阻塞http请求,以便可以在下一行使用$http响应?

在下面的示例中,$http对象不会将结果返回到下一行,因此我可以将此结果传递给JavaScript库fullcalender(),因为$scope.data返回空值。

以下是示例代码:

代码语言:javascript
复制
$http.get('URL').success(function(data){
    $scope.data = data;
});

$.fullCalender({
    data: $scope.data
});
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-11-05 16:16:07

为此,您可以使用promises

下面是一个示例:

代码语言:javascript
复制
$scope.myXhr = function(){

    var deferred = $q.defer();

    $http({
        url: 'ajax.php',
        method: 'POST',
        data:postData,
        headers: {'Content-Type': 'application/x-www-form-urlencoded'}
        })
        //if request is successful
        .success(function(data,status,headers,config){

            //resolve the promise
            deferred.resolve('request successful');

        })
        //if request is not successful
        .error(function(data,status,headers,config){
            //reject the promise
            deferred.reject('ERROR');
        });

    //return the promise
    return deferred.promise;
}

$scope.callXhrAsynchronous = function(){

    var myPromise = $scope.myXhr();

    // wait until the promise return resolve or eject
    //"then" has 2 functions (resolveFunction, rejectFunction)
    myPromise.then(function(resolve){
        alert(resolve);
        }, function(reject){
        alert(reject)      
    });

}
票数 2
EN

Stack Overflow用户

发布于 2014-11-05 14:19:33

你不能,你需要通过承诺来处理它,但你可以试着这样做:

代码语言:javascript
复制
$http.get('URL').success(function(data){
    angular.copy(data, $scope.data);
});

$.fullCalender({
    data: $scope.data
});

但大多数人都会做

代码语言:javascript
复制
$http.get('URL').success(function(data){
    $.fullCalender({
        data: data
    });
});

如果您的fullCalender对象不能处理异步数据,则可能需要将其包装在ng-if之类的内容中,或者在提供数据时强制其重绘。您还可以使用路由解析强制控制器在加载数据之前不加载。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26750814

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档