データベースからデータをロードする親コンポーネントがあります。このデータは、約束を返す私のサービスから来ています。Angular2子コンポーネントの非同期問題
コンポーネント:
ngOnInit() {
this._massEmpService.fetchFilterFields()
.then(results => {
this.fields = {
areas: results['areas']['options'],
silos: results['silos']['options'],
departments: results['departments']['options'],
locations: results['locations']['options'],
segments: results['segments']['options'],
roles: results['roles']['options']
};
});
}
サービス:
fetchFilterFields() {
return new Promise((resolve, reject) => {
this._http.get(this.baseUrl + '/fetchImportFields', { "headers": this.headers })
.map((result: Response) => result.json())
.subscribe((results) => resolve(results.data));
});
};
私は子コンポーネントに私のthis.fields
データを渡すためにしようとしていますが、私は試してみて、子コンポーネントにデータを使用するときそれにアクセスすることはできません。
子コンポーネント:
@Input() fields: any;
ngAfterViewInit() {
console.log(this.fields); // No data
}
親HTML:
<app-import [fields]="fields"></app-import>
は、私は、これは非同期の問題であると考えているが、私はafterViewInit
を使用して思ったが、それを解決している可能性があります。何かご意見は?