在ngModelChange中更改输入的ngModel

时间:2018-10-19 00:33:06

标签: angular

我已经在模板中找到了它

<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 个答案:

答案 0 :(得分:1)

您需要使用 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