在我的component中,它具有这样的模板
template: '<input type="text" value="{{formattedValue}}">',
当输入某些错误的输入时,内部formattedValue属性不会更改,但是我希望UI随后更新以显示最后一个正确的值。

例如,如果组件this.formattedValue为1,000,并且用户将输入更新为文本1,000x,则我希望输入再次为1,000。目前,这还没有发生。当然,我可以使用函数中的Dom api更新DOM,但我更喜欢使用模板。

最佳答案

template: '<input type="text" [ngValue]="formattedValue" (ngValueChange)="checkValue($event)">',


formattedValue:string = '';
constructor(private cdRef:ChangeDetectorRef) {}

checkValue(event) {
  if(event == /* invalid */) {
    this.cdRef.detectChanges();
  } else {
    this.formattedValue = event;
  }
}

10-06 07:31