Est*_*ask 8 javascript typescript angular angular-reactive-forms
Angular 4中有一个反应形式,某些控制应该在某个时刻以编程方式设置.
this.form = formBuilder.group({
foo: ''
});
...
this.form.controls.foo.setValue('foo');
Run Code Online (Sandbox Code Playgroud)
如何控制原始/脏状态?目前我正在使用两者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>
Run Code Online (Sandbox Code Playgroud)
如果pristine/dirty应该只指定人工交互并且不能以编程方式进行更改,那么这里有什么解决方案?
And*_*riy 26
formControl
has markAsDirty()
和markAsPristine()
methods的每个实例,所以,你应该能够运行
this.form.controls.foo.markAsPristine()
Run Code Online (Sandbox Code Playgroud)
或更好,使用反应形式API:
this.form.get('foo').markAsPristine()
Run Code Online (Sandbox Code Playgroud)
甚至
this.form.markAsPristine()
Run Code Online (Sandbox Code Playgroud)
markAsDirty()
方法也可以这样做
归档时间: |
|
查看次数: |
15145 次 |
最近记录: |