$ httpリクエストからのデータを配列に保存しようとしています。だから私はこのリストが必要なたびにAPIを呼び出すことはありません。今の配列に角をつけたhttp.data
私はこのように見ているサービスがあります。
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')
};
});
私は非同期呼び出しについて何かを読んで、配列が充填される前ので、私のコードは、上に行くだろう。 このサービスを構築する方法を教えてもらえますか?事前
これは角度の問題ではありません。 Javascriptのすべてが非同期です:ajax、キーボード、マウスなど。コールバック/イベントハンドラを使用してコードを記述する必要があります。あなたはおそらくsetTimeout()でそれをどのように動作するか見ることができます。 –