したがって、ページが読み込まれると、angular はサービスを呼び出して 3 つの配列にデータを入力します。このサービスは、$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