Il y a une forme réactive dans Angular 4, et un certain contrôle est censé être programmé à un moment donné.
this.form = formBuilder.group({
foo: ''
});
...
this.form.controls.foo.setValue('foo');
Comment contrôler l'état vierge/sale? Actuellement, j'utilise à la fois form
et foo
états vierges, quelque chose comme:
<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>
Si immaculé/sale est censé désigner uniquement l'interaction humaine et ne peut pas être modifié par programme, quelle solution serait préférable ici?
Chaque instance de formControl
a des méthodes markAsDirty()
et markAsPristine()
, vous devriez donc pouvoir exécuter
this.form.controls.foo.markAsPristine()
ou mieux, en utilisant l'API de formulaires réactifs:
this.form.get('foo').markAsPristine()
ou même
this.form.markAsPristine()
la même chose peut être faite avec la méthode markAsDirty()