我有一个Angular 2.4.0应用程序,其中有一个表单,其中包含一些支持Javascript验证/格式化的字段。当字段的格式化完成后,如果从格式化返回的值与附加到模型的原始值匹配,则视图不会更新。是否有一种方法可以强制更新视图?由于没有模型更改,强制组件刷新没有任何效果。我猜想我需要使用类似jQuery的东西单独更新视图,但我想先检查是否有更好的解决方案。
组件: export class Component { field: string
在上面的例子中,如果模型是“1”,那么我输入
组件: export class Component { field: string
formatField(updatedField: string) {
this.field = updatedField.replace(new Regexp("[^\\d]", "g"), ""); // remove everything except numbers
}
}
HTML:
<html>
<body>
<input type="text" [ngModel]="field" (ngModelChange)="formatField($event)">
</body>
</html>
在上面的例子中,如果模型是“1”,那么我输入
"1;['];["
,formatField
将返回"1"
,但是屏幕仍然显示"1;['];["
,而我期望显示"1"
(这是formatField
调用的返回值)。
编辑:在示例中修复了ngModelUpdate
为ngModelChange
(打字错误)。添加了Angular 2版本的说明。
ngModelUpdate
更改为ngModelChange
。 - mickdev<input type="text" [(ngModel)]="field" (keyup)="formatField(field)">
- mickdev