Ich habe einen AngularJS Dienst, einzelne Kontakte abzurufen verwendet wird (/contacts/:id
), basierend auf einem Index (/contacts
):inkrementeller UI Updates von mehreren Versprechen
app.service("CollectionService", function($http, $q) {
this.fetch = function(collectionURL) {
return $http.get(collectionURL).then(function(response) {
var urls = response.data;
var entities = urls.map(function(url) {
return $http.get(url);
});
return $q.all(entities);
}).then(function(responses) {
return responses.map(function(response) {
return response.data;
});
});
};
});
// used within the controller:
CollectionService.fetch("/contacts").then(function(contacts) {
$scope.contacts = contacts;
});
Die Ergebnisse in einer einfachen Liste angezeigt (<li ng-repeat="contact in contacts">{{ contact }}</li>
).
Aufgrund der Verwendung von $q.all
wird diese Liste jedoch erst aktualisiert, wenn die letzte (langsamste) Antwort empfangen wurde. Wie würde man von diesem Massenupdate zu inkrementellen Updates wechseln, wenn einzelne Kontakte empfangen werden?
Es scheint so, als ob 'notify' genau das ist, nach dem ich gesucht habe - nicht sicher, wie ich das vorher übersehen hatte. Vielen Dank! – AnC