将相同的值粘贴到输入字段时,第二次粘贴双向数据绑定不起作用

When pasting the same value into Input field, on second time pasting two-way data binding doesn't work

我有以下输入标签:

<input type="number" [ngModel]="position" (ngModelChange)="onChangePosition($event)" />

onChangePosition函数主要是检查输入值的长度,如果长度超过3则截取,只留下3个数字。 当我粘贴像 12345 这样的长数字时,它第一次剪切并将 123 设置为 position 属性 就是这样反映在视图上。 但是,当第二次将相同的值粘贴到旧值上时,position 会像以前一样发生变化,但不会反映在视图中。

您可以在 DEMO

复制值 12345 并将其粘贴到字段中,您将看到 123。正确的结果。 然后再次将值粘贴到字段中,您会看到位置发生了变化,但在输入字段中它保持原样。不需要的结果。

感谢任何建议。

您可以通过(输入)事件利用您的输入与 ngModel 中的内容之间的差距:

<input type="number" #myPosition
       [ngModel]="position"
       (input)="myPosition.value = position"
       (ngModelChange)="onChangePosition($event)" />

这里我使用了模板变量及其值

DEMO