web-dev-qa-db-fra.com

patchValue avec {emitEvent: false} déclenche valueChanges sur Angular 4 formgroup

J'ai un groupe de formbuilder et j'écoute les changements avec valueChanges et je déclenche une fonction de sauvegarde suivie d'une fonction de rafraîchissement sur le formulaire:

 this.ticketForm.valueChanges.debounceTime(1000).distinctUntilChanged()
 .subscribe(data => {
   this.saveTicket();
   this.refreshTicket();
 })

Je recharge ensuite le formulaire et je rapatrie les données dans les champs du formulaire (et ailleurs sur la page, en particulier un journal des modifications) avec patchValue, par exemple:

    this.ticketForm.patchValue(ticket, { emitEvent: false });

cependant, cela provoque une boucle infinie de sauvegardes du formulaire malgré emitEvent: false.

Est-ce un bug Angular 4/Ionic 3 ou un malentendu de ma part?

16
larpo

Essayez d'ajouter onlySelf: true avec le emitEvent: false de cette façon:

this.ticketForm.patchValue(ticket, {emitEvent: false, onlySelf: true});
14
Lakshay