任何想法为什么在运行以下代码时我得到了 valueChanges
的事件 'firstName'
控制开除?
let form: FormGroup = this.createForm();
form.controls['firstName'].enable();
form.controls['firstName'].valueChanges(value=>{
//some code
});
由于没有任何价值变化(只是状态),我不指望 valueChanges
在这里被触发,只有 statusChanged
。
我错过了什么吗?
基本上完整的表单映射到模型上,因此无论何时启用/禁用任何控件,表单模型的属性都会更改。而且因为模型正在发生变化 valueChanges
事件将被触发。我认为这是正常的。
基本上完整的表单映射到模型上,因此无论何时启用/禁用任何控件,表单模型的属性都会更改。而且因为模型正在发生变化 valueChanges
事件将被触发。我认为这是正常的。
我有角版6.0.3
this.form.get('inputName').setValue(newValue, {onlySelf: true, emitEvent: false});
这对我有用。
ValueChange
在角度启用或禁用表单时触发是他们的代码中的错误。
如果你不想要的话 ValueChange
在启用或禁用表单时触发,
我找到了一个可能有用的解决方法。
Object.keys(this.toolForm.controls).forEach(key => {
this.form.controls[key].enable({onlySelf: true, emitEvent: false});
});
上面的代码为我解决了这个问题。
不知道它为什么会这样,但你可以发送 emitEvent: false
启用/禁用而不启动 valueChanges
。
form.controls['firstName'].enable({ emitEvent: false });