这是Angular变化检测的默认行为,因此可以通过手动触发变化检测来解决此问题。我们可以使用Angular依赖注入器中的ChangeDetectorRef服务。
在组件类中,首先导入ChangeDetectorRef,然后在构造函数中注入它:
import { Component, ChangeDetectorRef } from '@angular/core';
@Component({ ... })
export class MyComponent {
constructor(private cdr: ChangeDetectorRef) { }
}
现在在处理提交表单的事件处理程序中,我们可以调用ChangeDetectorRef的detectChanges()方法来强制更新模板中的所有绑定。例如:
onSubmit() {
// 处理表单提交
// ...
this.cdr.detectChanges();
}
这样一来,即使输入字段失去焦点并且ngModel绑定的值没有触发变化检测,我们也可以确保在处理其他逻辑之后更新表单数据在模板中的值。