在我的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;
}
}