因此,当我的页面加载时,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