我試圖創建一個角的js服務,如果需要更新將會從服務器獲取數據,或返回緩存陣列,如果沒有更新。在這兩種情況下,服務應返回promise
。服務代碼:緩存服務器響應(AngularJS,延期)
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()
)調用工作,第一 - 在列表是空的,「結果」變量是undefined
。
我是新來的延期對象和我的英語很不好,但我希望你明白的地方的錯誤是。非常感謝!
偉大的解決方案。非常感謝你! P.S.我肯定會閱讀你的博客文章。 ;) –