更新が必要な場合はサーバーからデータをフェッチするか、更新がない場合はキャッシュされた配列を返すAngular jsサービスを作成しようとしています。どちらの場合も、サービスは を返す必要がありpromise
ます。サービスコード:
getLikesForMe = function() {
var defer = $q.defer(), prom = defer.promise;
if (angular.isUndefined(this.likesForMe) ||
updateStatus.likesForMe === true) {
var that = this;
prom = $http.get(API_URL + 'likes-to.json')
.then(function(result){
updateStatus.likesForMe = false;
that.likesForMe = result.data;
});
} else {
defer.resolve(this.likesForMe);
}
return prom;
}
現在のコントローラ コード:
MainUser.getLikesForMe().then(function(result) {
$scope.likesList = result;
});
優先コントローラーコード:
$scope.likesList = MainUser.getLikesForMe();
しかし、現在getLikesForMe()
は、最初の 2 番目の関数 ( ) 呼び出しの後にのみ機能します。リストは空で、「結果」変数はundefined
です。
私は遅延オブジェクトを初めて使用し、私の英語はかなり貧弱ですが、間違いがどこにあるかを理解していただければ幸いです。どうもありがとう!