Any ideas why when running the following code I get the valueChanges event of 'firstName' control fired?
let form: FormGroup = this.createForm();
form.controls['firstName'].enable();
form.controls['firstName'].valueChanges(value=>{
//some code
});
As no value has changed (just the status), I wouldn't expect valueChanges to be triggered here, only the statusChanged.
Am I missing something?
No idea why it behaves as it does, but you can send emitEvent: false to enable/disable without firing valueChanges.
form.controls['firstName'].enable({ emitEvent: false });
Basically complete form is mapped on a model, so whenever you enable/disable any control, the form model's property changes. And because the model is changing so valueChanges event will be triggered. I think its normal.
I have angular version 6.0.3
this.form.get('inputName').setValue(newValue, {onlySelf: true, emitEvent: false});
This works for me.