Angular2サービスを開発して、バックエンドサーバーからカテゴリを取得し、カテゴリごとにいくつの「リンク」が存在するかを数えます。 各カテゴリのリンク数を取得したら、値を '保存'するためにJsonオブジェクトにプロパティを追加します。複数の観察可能な通話の可視性を管理するにはどうすればよいですか?
nbLinks = '';
...
getCategories() {
return this.category.find({where: {clientId: this.userApi.getCurrentId()}}).map((data) => {
this.categoriesList = data;
for (var i = 0; i < this.categoriesList.length; i++) {
var obj = this.categoriesList[i].id;
this.category.countLinks(obj).subscribe((linksCount) => {
this.nbLinks = linksCount;
}, err => {
console.log(err);
});
}
return data;
},
err => {
console.log(err);
}
);
は私が正しいとJSONオブジェクトにカテゴリを取得しています「」句:ここ
はコードです。 私はこのカテゴリのリンクの数を '数える'ためにJsonをループしています。私の問題は、ループの外(出て行く)変数iが私のJsonの長さよりも大きいため、アプリがクラッシュすることです。 私の2番目の問題は、this.nbLinksがfor ...ループの外側にあるかどうかです。よろしく
実際に私の関数getCategories()の役割は、*の両方から来るデータからJSONオブジェクトのビルドを返すことです*カテゴリ**と**リンク**はAPIモデルです。私は、私の問題は、同期と非同期のコードが混在していることから完全にあなたに同意します。 –
私は、コードを次のように修正しました: ** 'getCategories(){ const categories = this.category.find({{:clientId:userApi.getCurrentId()}}); 戻り値Observable.from(カテゴリ).mergeMap(category => this.category.countLinks(category)); }; '** とエラーを受け取ります: ** "MODEL_NOT_FOUND"メッセージ: "id [オブジェクトオブジェクト]、[オブジェクトオブジェクト]、[オブジェクトオブジェクト]"のモデルを見つけることができませんでした " * countLinks()関数は、特定のカテゴリのリンク数を数えているため、オブジェクトとしてではなく、パラメータとしてIdを必要としています。 –
コードのJsFiddleを提供することができます。 – AngularChef