J'essaie de créer un service js angulaire qui récupérera les données du serveur si une mise à jour est nécessaire ou retournera un tableau mis en cache s'il n'y a pas de mise à jour. Dans les deux cas, le service doit renvoyer un promise
. Code de service:Réponse du serveur de cache (AngularJS, différée)
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;
}
Code contrôleur actuel:
MainUser.getLikesForMe().then(function(result) {
$scope.likesList = result;
});
code du contrôleur Prefered:
$scope.likesList = MainUser.getLikesForMe();
Mais actuellement il ne fonctionne que après la deuxième fonction (getLikesForMe()
) appel, le premier - la La liste est vide et la variable "result" est undefined
. Je suis novice en matière d'objets différés et mon anglais est assez pauvre, mais j'espère que vous comprenez où est l'erreur. Merci beaucoup!
Excellente solution. Merci beaucoup! P.S. Je voudrais certainement lire votre article de blog. ;) –