Angular 9动态ngx-mask问题

问题描述

我有以下输入内容

<input
  [(ngModel)]="myInput"
  mask="00-0000-0000||00-00000-0000"
  type="text"
>

,我想用某个值初始化它。假设 12-12345-1234

这不起作用,因为我只看到 12-1234-5123 (最后一位数字从html输入中切出,并且使用了最短的possibble掩码)。

我希望能够使用 any 有效值初始化我的输入,并查看应用于其的正确掩码。

解决方法

要设置DOM初始值,可以在HTML模板上使用value属性:

<input type="text" value="any-value-here">

您要使用的掩码是DOM操作逻辑的产物。通过运行修改DOM的JavaScript代码可以实现此目的,并且取决于您使用的框架或创建输入掩码效果的lib,始终将覆盖该“初始”值。

对于您而言,使用[[ngModel)]并不是严格的初始化:据我所知,它已经是由angular绑定的“事件”值。为了测试您的逻辑,我认为这是创建测试或将掩码动态添加到字段中的更好方法。