私は、非同期にフェッチされたオブジェクトに依存するコンポーネントを持っています。この同じオブジェクトからのデータに依存する子コンポーネントもテンプレートにあります。Angular2非同期データの問題
私が抱えている問題は古典的な競合状態だと思われますが、解決策を理解するには角度2で十分に精通していません。
は、例えばこれを持っ:
export class SampleComponent {
constructor(service: SomeService) {
this.service = service;
this._loadData();
}
private _loadData() {
this.service.getData().subscribe(data => this.data = data);
}
}
しかし、テンプレート内に、私はthis.data
の特定の部分を表示するには、子コンポーネントがあります。
<taglist tags="data?.tags"></taglist>
を今すぐtaglist
のコンポーネントは、次のようになります。
@Component({
selector: 'taglist',
directives: [NgFor],
inputs: ['tags'],
template: `<span *ngFor="#tag of tags">{{ tag }}</span>`
})
export class TagList {
public tags: Array<string> = [];
constructor() {
//
}
}
タグ入力を受信したため非同期ロードされたデータセットから、タグコンポーネントが初期化されたときには存在しません。 this.data
ロードが終了すると、それを使用するサブコンポーネントは自動的にロードされた新しくデータにアクセスするように何を行うことができますか?
私に提供していただきありがとうございます。
だから私は私はconsole.log chages ['tags']。currentValueと評価された値の代わりに文字列 'data?.tags'を出力します:/ –
私は参照してください。 ' 'または ' –
を使ってみてください。ポインタをお寄せいただきありがとうございます –