AngularJS Mobile-Nav AJAX调用被阻止

时间:2013-08-13 21:42:02

标签: ajax angularjs cordova

我有一个AngularJS应用程序,我正在使用Phonegap为iOS应用程序开发。

该应用使用Angular-Mobile(ngMobile)和angular-mobile-nav:https://github.com/ajoslin/angular-mobile-nav

当应用程序加载时,会出现一个主屏幕,其中包含数据库中供用户查看的项目列表。这些是从WebSQL加载的,但是应该从API下载初始加载。

我正在使用AngularJS'$ http库来进行下载:

$http.get(
        $scope.api_url + '/users/events/?values=' + hash,           
        {
            headers: {apihash: hashes.apihash}
        }
    ).success(function(data,status,headers,config){
        // do stuff with response
    }).error(function(data,status,headers,config){
        // log the error
    }); 

我遇到的问题是,在点击链接之前,此API请求无法完成,并导航到新页面 - 由angular-mobile-nav处理。

我可以坐在主屏幕上一分钟,但是当我移动到新视图时,我可以在控制台中看到AJAX呼叫完成。同样的事情发生在这个屏幕上,如果我触发一个AJAX调用,我可以等待我想要的,一旦切换回我的主屏幕,我就可以在控制台中看到对API的AJAX调用。

这是我设置导航的代码:

ng-tap="slidePage('/catalogue')"

我的路线提供商看起来像这样:

$routeProvider.
        when('/', {
            templateUrl: 'partials/home.html',   
            controller: 'HomeCtrl'
        }).
        when('/catalogue', {
            templateUrl: 'partials/catalogue.html', 
            controller: 'CatalogueCtrl',
        }).
        otherwise({redirectTo: '/'});

路由和移动导航一切正常,我可以在视图之间切换没有问题,但后台的AJAX被UI阻止或延迟,直到我移动到下一个视图

1 个答案:

答案 0 :(得分:1)

可能您必须将更改应用于范围。

你试过这个吗?

    $scope.$apply(function()
    {
       // do stuff with response
    });