Angular 4にリアクティブフォームがあり、ある時点でプログラムによって設定されるコントロールがあります。
this.form = formBuilder.group({
foo: ''
});
...
this.form.controls.foo.setValue('foo');
原始的/汚い状態を制御するにはどうすればよいですか?現在、私はform
とfoo
の両方の初期状態を使用しています。
<form [formGroup]="form">
<input [formControl]="form.controls.foo">
</form>
<p *ngIf="form.controls.foo.pristine">
{{ form.controls.foo.errors | json }}
</p>
<button [disabled]="form.pristine">Submit</button>
手付かず/汚れが人間の相互作用のみを指定することになっていて、プログラムで変更できない場合、ここでどの解決策が望ましいでしょうか?
formControl
の各インスタンスにはmarkAsDirty()
およびmarkAsPristine()
メソッドがあるため、実行できるはずです。
_this.form.controls.foo.markAsPristine()
_
または、リアクティブフォームAPIを使用:
_this.form.get('foo').markAsPristine()
_
あるいは
_this.form.markAsPristine()
_
markAsDirty()
メソッドでも同じことができます