formulär - Angular2 ControlGroup valueChanges vid initial bindning


Jag har ett formulär med några <input type="text">-widgets och jag har märkt att ControlGroup.valueChanges anropas vid initial databindning när jag använder [ngFormModel] och ngControl.

Detta betyder att användaren tror att formuläret har ändrats vid den första inläsningen.

Är detta normalt eller borde jag använda en annan observerbar för att spåra förändringar gjorda av användaren?

Jag använder Angular2 RC3 och följande versionsimport för formulär:

import {ControlGroup, Validators, FormBuilder} from '@angular/common';

Svar #1

Jag tror att det är så det fungerar, men om du bara vill spåra om ändringar görs av användaren, bör du använda ControlGroup.dirty eller formControl.dirty med changes-Observable.

ControlGroup.valueChanges.subscribe(() => {

 if(ControlGroup.dirty){
   console.log('This change is made by User.');
 } 
 else {
   console.log('This change is Automated. before any User interaction.');
 }

})

Relaterade artiklar