代码之家  ›  专栏  ›  技术社区  ›  ricksmt

在ngModelChange中更改输入的ngModel

  •  0
  • ricksmt  · 技术社区  · 7 年前

    我在模板里有这个:

    <input [(ngModel)]="model" (ngModelChange)="cleanseModel($event)">
    

    控制器里有这样的东西:

    model: string;
    
    cleanseModel(value: string) {
        this.model = value.replace(/[^A-Za-z0-9]/g, '').substr(0, 4);
    }
    

    不幸的是,输入没有被清除!我进去了 12345 输入将有 12345 . 我可以把 {{model}} 在模板中,并正确显示(即 1234 ),但我无法理解这些信息。

    如何更新输入?

    1 回复  |  直到 7 年前
        1
  •  2
  •   Sajeetharan    7 年前

    你需要使用 this.

    cleanseModel(value: string) {
        this.model = value.substr(0, 4);
    }
    

    更新:

    像这样试试,

    <input [ngModel]="model" name="carData" (input)="model = deleteInputStream($event)"/>
    {{carData}} <br/>
    

    在component.ts中

      deleteInputStream(data) {    
        return data.target.value = data.target.value.replace(/[^A-Za-z0-9]/g, '').substr(0, 4);
      }
    

    STACKBLITZ DEMO

    推荐文章