子コンポーネントに非同期データを渡す際に問題があります。私は動的フォームジェネレータを作成しようとしています。 Observable経由でjsonを呼び出して子コンポーネントに渡すと、問題が発生します。Angular2 - ASYNCデータを子コンポーネントに渡します。
サービス:
generateSearchFields2(): Observable<any> {
return this.http
.get(this.API + 'searchFields')
.map((res:Response) => {
res.json().data as any;
for (var i = 0; i < res.json().data.length; i++) {
var searchField = res.json().data[i];
switch (searchField.component) {
case "TextboxQuestion":
let TXQ: TextboxQuestion = new TextboxQuestion({
key: searchField.key,
label: searchField.label,
value: searchField.value,
required: searchField.required,
order: searchField.order
});
this.searchFieldModels.push(TXQ);
console.log("TXQ: ", TXQ, this.searchFieldModels);
break;
case "DropdownQuestion":
let DDQ: DropdownQuestion = new DropdownQuestion({
key: searchField.key,
label: searchField.label,
required: searchField.required,
options: searchField.options,
order: searchField.order
});
this.searchFieldModels.push(DDQ);
console.log("TXQ: ", DDQ, this.searchFieldModels);
break;
default:
alert("DEFAULT");
break;
}
}
return this.searchFieldModels.sort((a, b) => a.order - b.order);
})
.catch(this.handleError);
}
コンポーネントの親:
generateSearchFields2() {
this.service.generateSearchFields2()
.subscribe(res => this.searchFields = res)
}
子供に親テンプレートに入力ディレクティブで変数を渡してはIAM:[searchFields]="searchFields"
問題がsearchField
が未定義た子コンポーネントであります値。この子では、別のサービスに値を渡してformControsを作成しますが、そこにも定義されていません。 parent
から来data
がまだバインドされていないngOnInit
場合には、その間
setterとngOnChanges()の違いについてもっと詳しく説明できますか? – Freak001
不明な点を教えていただけますか? –