私がこのモデルを持っているとしましょう:
export class MyModel {
constructor(
public id: number,
public name: string
) {}
}
そしてこのControlGroup:
export class MyComponent {
form: ControlGroup;
model: MyModel;
constructor(builder: FormBuilder) {
this.form = this.builder({
'id' : [''],
'name' : ['']
})
}
}
フォームのデータを取得するには、単純にそれを行うことができます (フィールド名が一致する場合):
this.model = this.form.value;
しかし、同じ方法でフォームの値を設定するにはどうすればよいでしょうか?
something like: this.form.value = model;
次のエラーが発生しました: getter しかない #<AbstractControl> のプロパティ値を設定できません
ありがとうございました!
UPD:以下のGünterZöchbauerの提案に基づいて、そのヘルパーメソッドになりました:
setFormValues(form: ControlGroup, model: any) {
for(var key in model) {
var ctrl = (<Control>form.controls[key]);
if ( ctrl != undefined )
ctrl.updateValue(model[key]);
}
}