1

因此,当我的页面加载时,angular 会调用一个服务来填充三个数组。此服务使用 $resource 从后端获取数据 (JSON)。问题是,当数据正在加载时,整个页面会冻结一秒钟并且微调器是静态的。我的理解是 $resource 和 $http 都是异步的,当它们处于活动状态时页面不应该冻结。我已经尝试过本文建议的承诺模式方法,没有运气。有什么建议吗?提前致谢!

编辑:添加代码

mobiModule.factory('DataSrv', function($q, $http) {
    return {
        getData: function(url) {
            var defered = $q.defer();

            //make the call
            $http.get(url).success(function(data){
                console.dir(data);
                defered.resolve(data);
            }).error(function(){
                console.log('HTTP error');
                defered.reject();
            });

            return defered.promise;
        }
    }
});   



$scope.phones = Phones.query(); //using $resource('phones.json') 

或者

$scope.phones = DataSrv.getData('phones.json'); //using the service defined above
4

0 回答 0