dim*_*tri 6 javascript rxjs typescript angular
我有一个包含超过 10 个表单控件的反应式表单,并使用 valueChanges observable 的订阅来检测更改。它工作完美,但输出始终是整个表单值对象(意味着所有表单控件及其值)。有没有办法简单地获取更改的字段的表单控件名称?
this.form = this.fb.group({
field1: ['', Validators.required],
field2: ['', Validators.required],
field3: ['', Validators.required],
field4: ['', Validators.required],
field5: ['', Validators.required],
field6: ['', Validators.required],
field7: ['', Validators.required],
field8: ['', Validators.required],
field9: ['', Validators.required],
field10: ['', Validators.required],
field11: ['', Validators.required],
field12: ['', Validators.required],
field13: [{ value: '', disabled: true }, Validators.required]
});
this.form.valueChanges.subscribe(
result => this.calculateParams(result)
);
calculateParams(result) {
console.log(result); // giving the entire form.value object
}
Run Code Online (Sandbox Code Playgroud)
这是一个解决方法,但如果存储旧值,你可以做一些类似的事情
this.old={...this.myForm.value}
this.myForm.valueChanges.subscribe(res=>{
const key=Object.keys(res).find(k=>res[k]!=this.old[k])
this.old={...this.myForm.value}
})
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
17271 次 |
| 最近记录: |