Angular2: Comment avez-vous marque FormGroup contrôle sale via `patchValue()`

Je me suis mise à jour d'un Réactif FormGroup de contrôle de la valeur de mon composant via patchValue.

Ex:

this.myForm.patchValue({incidentDate:'2016-09-12');

Cela fonctionne très bien et déclenche une valueChanges cas, cependant, ce contrôle est dirty propriété est encore false.

J'ai besoin de la incidentDate contrôle dirty donc ma logique de validation sait à l'encontre de ce contrôle.

Comment puis-je mettre à jour la valeur d'un contrôle de mon composant ET indiquent que c'est sale?

Voici ma logique de validation:

onValueChanged(data?: any) {
    if (!this.myForm) {
      return;
    }
    const form = this.myForm;
    for (const field in this.formErrors) {
      //clear previous error message (if any)
      this.formErrors[field] = '';
      const control = form.get(field);
      if (control && control.dirty && !control.valid) {
        const messages: any = this.validationMessages[field];
        for (const key in control.errors) {
          this.formErrors[field] += messages[key] + ' ';
        }
      }
    }
}

OriginalL'auteur rynop | 2016-10-01