我有以下输入标签:
<input type="number" [ngModel]="position" (ngModelChange)="onChangePosition($event)" />
onChangePosition
函数主要检查输入值的长度,如果长度大于3,则剪切并仅保留3个数字。
当我粘贴诸如 12345 之类的长数字时,它第一次将 123 剪切并将其设置为position
属性,这反映在视图上。
但是,当第二次在旧值上粘贴相同的值时,position
会像以前一样更改,但不会反映在视图上。
您可以在 DEMO
复制值 12345 并将其粘贴到字段中,您将看到 123 。正确的结果。 然后将值再次粘贴到字段中,您将看到位置已更改,但在输入字段中它保持原样。不需要的结果。
赞赏任何建议。
答案 0 :(得分:3)
您可以利用(输入)事件利用输入内容与ngModel中的内容之间的差距:
<input type="number" #myPosition
[ngModel]="position"
(input)="myPosition.value = position"
(ngModelChange)="onChangePosition($event)" />
这里我使用了模板变量及其值