如何检测补丁值后,angular6中的表单数据是否已更改?
How to detect that after patch value, form data has been changed or not in angular6?
在我的应用程序中,我对 formControl
做了 patchValue
,当用户单击 next/submit 按钮时,我想检测一下,表单值是否已更改?
尝试过
ngOnChanges(changes: SimpleChanges): void {
alert("Change found");
}
this.partnerForm.valueChanges.subscribe(val => {
console.log("[partnerForm valueChanges subscribe]", val);
});
为什么我需要这个?
- 我需要在表单值发生任何变化时调用 API,否则我只需要将用户导航到下一页。
首先,控制权为 FormControl
然后检查 yourFormControl.hasChanged()
如果您的表单控件的值发生更改,则此 returns 为真
form.valueChanges 在补丁值后不起作用。
所以为了检测变化,你可以比较你的对象:
let valueChange = (JSON.stringify(oldObj) === JSON.stringify(currentObj))
它会return true 或 false 根据你的值变化。
在我的应用程序中,我对 formControl
做了 patchValue
,当用户单击 next/submit 按钮时,我想检测一下,表单值是否已更改?
尝试过
ngOnChanges(changes: SimpleChanges): void { alert("Change found"); }
this.partnerForm.valueChanges.subscribe(val => { console.log("[partnerForm valueChanges subscribe]", val); });
为什么我需要这个?
- 我需要在表单值发生任何变化时调用 API,否则我只需要将用户导航到下一页。
首先,控制权为 FormControl
然后检查 yourFormControl.hasChanged()
如果您的表单控件的值发生更改,则此 returns 为真
form.valueChanges 在补丁值后不起作用。 所以为了检测变化,你可以比较你的对象:
let valueChange = (JSON.stringify(oldObj) === JSON.stringify(currentObj))
它会return true 或 false 根据你的值变化。