要解决Angular 5中NgModel在第一次点击时不更新的问题,可以使用ChangeDetectorRef手动触发变更检测。
以下是一个示例代码:
在组件中导入ChangeDetectorRef:
import { ChangeDetectorRef } from '@angular/core';
在构造函数中注入ChangeDetectorRef:
constructor(private cdr: ChangeDetectorRef) {}
在NgModel绑定的元素上添加(click)事件处理程序,并在点击事件处理程序中调用detectChanges()方法:
在组件中定义updateModel()方法并在其中调用detectChanges():
data: string;
updateModel() {
// 手动更新NgModel
this.cdr.detectChanges();
}
这样,在第一次点击时,NgModel将会被正确更新。
注意:确保在导入和注入ChangeDetectorRef之前,已经正确导入FormsModule并将其添加到你的模块中。