Ich versuche, meine Daten zu speichern, die von einer $ http Anfrage zu einem Array kommen. Also habe ich die API nicht jedes Mal aufgerufen, wenn ich diese Liste brauche.Angular save http.data zu array
Für jetzt habe ich einen Dienst wie folgt aussehen:
angular.module('schwimmfestivalApp')
.service('httpService', function($http) {
// AngularJS will instantiate a singleton by calling "new" on this function
var articleList = [];
var food = [];
this.getArticles = function() {
if (articleList < 1) {
$http.get('https://www.anmeldung.schwimmfestival.de/server/func/getArtikel.php').then(response => {
articleList = response.data;
console.log(articleList);
});
}
return articleList;
};
this.getArticleByCategory = function(category) {
if (food.length < 1) {
for (var i = 0; i < this.getArticles().length; i++) {
if (this.getArticles()[i].kategorie == category) {
food.push(this.getArticles()[i]);
}
}
}
return food;
};
this.getFood = function() {
console.log('Food: '+ food);
return this.getArticleByCategory('TN Essen')
};
});
las ich etwas über Asynchron-Anrufe und so wird mein Code weitergehen, bevor das Array gefüllt ist. Können Sie mir helfen, diesen Dienst zu erstellen, damit ich mit diesem Array arbeiten kann?
Vielen Dank im Voraus
Dies ist kein Angular-Problem. Alles in Javascript ist asynchron: Ajax, Tastatur, Maus, etc. Sie müssen Ihren Code mit Callbacks/Event-Handlern schreiben. Sie sollten wahrscheinlich mit setTimeout() herumspielen, um zu sehen, wie alles funktioniert. –