在Angular中,双向绑定会联动更新模型与页面元素的值。然而,有时候当页面元素的值被改变后,模型的值未必会同步更新,导致双向绑定返回了初始值。这个问题通常是由于在修改值时触发的事件不正确,或是因为使用了OnPush策略。解决方法可以是在模板中使用ngModel指令进行双向绑定,并在ts文件中使用ngModelChange事件来确保值的同步更新。另外,也可以考虑使用ChangeDetectorRef来手动触发变化检测。
示例代码:
HTML模板:
TS文件:
import { Component, ChangeDetectorRef } from '@angular/core';
@Component({ selector: 'app-example', templateUrl: './example.component.html', styleUrls: ['./example.component.css'] }) export class ExampleComponent {
name: string = '';
constructor(private cdRef: ChangeDetectorRef) { }
changeName() { // 手动触发变化检测 this.cdRef.detectChanges(); }
}