2016-07-10 18 views
5

Ich habe ein Formular mit einigen <input type="text"> Widgets, und ich habe festgestellt, dass ControlGroup.valueChanges auf die erste Datenbase aufgerufen wird, wenn [ngFormModel] und ngControl verwendet werden.Angular2 ControlGroup valueÄndert die anfängliche Bindung

Dies bedeutet, dass der Benutzer denkt, dass das Formular beim ersten Laden geändert wurde.

Ist das normal oder sollte ich eine andere beobachtbare verwenden, um Änderungen zu verfolgen, die vom Benutzer gemacht wurden?

I Angular2 RC3 und die folgende Version Import für Formulare bin mit:

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

können Sie bitte Ihre package.json posten –

Antwort

8

Ich denke, das ist nur, wie es funktioniert, aber wenn Sie wollen, verfolgen nur, wenn Änderungen durch den Benutzer vorgenommen werden, sollten Sie beschäftigen ControlGroup.dirty oder formControl.dirty mit der 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.'); 
} 

}) 
Verwandte Themen