FormGroup & FormControl
を使用して手動でフォームモデルを作成していますが、それが対応する入力にFormControl
をバインドすると予期しない結果が発生します。角度 - FormControlがformControlNameに正しくバインドされていません
私はモデルを作成し、この方法でhtmlにバインドします。
private initFormModel(user: User): FormGroup {
const _formGroup = new FormGroup({
fullname: new FormControl({ value: user.name })
});
return _formGroup;
}
<!-- This is part of the html code/I set on my component class this.form = this.initFormModel(... -->
<form (ngSubmit)="onSubmit()" [formGroup]="form" novalidate>
<!-- .... --->
<input type="text" formControlName="fullname" name="fullname">
結果
あなたは私はそれが何も変わりませんFormBuilder
を使用することが予想される場合には何も間違っては、ありません。私は[Object object]
を自分の入力にバインドしました。面白いのは、フォームコントロール定義にdisabled属性を追加するとうまくいくことです。 Like:fullname: new FormControl({ value: user.name, disabled: false })
FormControl(fullname: [user.name, ...]
)を作成するためにArray表記を使用すると、テキストがバインドされています。
は、念のために私は現在the documentationからの角度v2.4.10
これは、私はまた、私は 'FormControl'ための角度のソースコードを見てみました素晴らしいです。これをあなたの答えに加えることができますか? https://github.com/angular/angular/blob/4.4.0-RC.0/packages/forms/src/model.ts#L579 formStateの型がobjectと等しい場合は、値をチェックし、無効にされたプロパティが存在するようにします。それ以外の場合はfalseを返し、 'this._value'は決して設定されません。これはhttps://github.com/angular/angular/blob/4.4.0-RC.0/packages/forms/src/model.ts#L767の使用行です –