将相同的值粘贴到“输入”字段中时,第二次粘贴双向数据绑定无效

时间:2019-01-03 13:56:30

标签: angular input angular2-ngmodel

我有以下输入标签:

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

onChangePosition函数主要检查输入值的长度,如果长度大于3,则剪切并仅保留3个数字。 当我粘贴诸如 12345 之类的长数字时,它第一次将 123 剪切并将其设置为position属性,这反映在视图上。 但是,当第二次在旧值上粘贴相同的值时,position会像以前一样更改,但不会反映在视图上。

您可以在 DEMO

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

赞赏任何建议。

1 个答案:

答案 0 :(得分:3)

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

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

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

DEMO