Javascript 使原始角度形状控件变脏

Javascript 使原始角度形状控件变脏,javascript,angular,typescript,angular-reactive-forms,Javascript,Angular,Typescript,Angular Reactive Forms,Angular 4中有一个被动形式,一些控件应该在某个点以编程方式设置 this.form = formBuilder.group({ foo: '' }); ... this.form.controls.foo.setValue('foo'); 如何控制原始/脏状态受到影响?目前我正在使用表单和foo原始状态,类似于: <form [formGroup]="form"> <input [formControl]="form.controls.foo"> <

Angular 4中有一个被动形式,一些控件应该在某个点以编程方式设置

this.form = formBuilder.group({
  foo: ''
});
...
this.form.controls.foo.setValue('foo');
如何控制原始/脏状态受到影响?目前我正在使用
表单
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>


{{form.controls.foo.errors | json}

提交

如果pristine/dirty应该只指定人与人之间的交互,并且不能以编程方式更改,那么这里最好的解决方案是什么?

formControl的每个实例都有
markAsDirty()和
markAsPristine()
方法,因此,您应该能够运行

this.form.controls.foo.markAsPristine()
或者更好,使用反应式表单API:

this.form.get('foo').markAsPristine()
甚至

this.form.markAsPristine()

同样的方法也可以用
markAsDirty()
method

markAsDirty像个符咒一样工作!