Ich rufe einige Rest-API (s) in meiner Angular App, um Daten vom Server zu erhalten und auf der Seite anzuzeigen (z. B. Homepage). Aber jedes Mal, wenn ich die Seite besuche, wird die API getroffen, und Daten werden abgerufen und angezeigt, weil ich in meinem Controller den Rest-Service anrufe. Gibt es eine "beste" Möglichkeit, die Daten beim ersten Anruf zu "speichern" und dann, wenn der Nutzer die gleiche Seite besucht, die "gespeicherten" Daten anzuzeigen, anstatt die Restdienste immer wieder zu treffen?, wie Rest API-Aufruf in Controller jedes Mal, wenn die Route/Seite besucht wird
Es gibt auch Fälle, in denen ich die API anstelle von gespeicherten Daten anzeigen möchte (z. B .: wenn sich der Benutzer abmeldet und erneut anmeldet oder wenn Daten auf dem Server aktualisiert werden). Was ist mit Angular am besten, um solche Funktionen zu implementieren?
Here is a working Plunker for demo of my current app. (Informationen zum Servicebefehl finden Sie unter home.js).
angular.module('home').controller('HomeCtrl', function($scope, DrinkService) {
var vm = this;
vm.loading = true;
vm.greeting = "Drink World!";
DrinkService.getDrinks().then(function(response) {
vm.drinks = response.data.results;
console.log(vm.drinks);
vm.loading = false;
});
}).factory('DrinkService', ['$http',
function($http) {
var url = 'https://raw.githubusercontent.com/Randmness/DeathByCaffeine-Enyo/master/data/canonDbList_dbService.json';
var drinkService = {};
drinkService.getDrinks = function() {
return $http.get(url).then(function(response) {
return response;
});
};
return drinkService;
}
]);
war die Antwort hilfreich? – user2954587
Hey! Tut mir wirklich leid für die späte Antwort (war in einer anderen Aufgabe stecken). Ich habe zwar die Lösung noch nicht getestet, aber es ist definitiv sehr hilfreich! Wird grün markieren, sobald ich es versuche. Deine Hilfe ist sehr Willkommen. :) – Rishabh
danke, kein Problem! Viel Glück – user2954587