【发布时间】:2020-02-06 13:44:12
【问题描述】:
我有一个双向绑定的输入字段,我想将用户输入更改为大写并将其限制为 3 个字符。我在变量的设置器中这样做。如果我尝试执行子字符串,则大写替换有效,它不再更新字段值,但属性已正确更新。
如果我输入“abc”,它会正确地将其替换为“ABC”,但只要我输入超过 3 个字符,其他字符就不会被删除。例如“abcde”在输入中显示“ABCde”。 请参阅 stackblitz 示例:https://stackblitz.com/edit/angular-bpuh8a
<input type="text" id="airport" name="airport" [(ngModel)]="airport">
private _airport = '';
get airport(): string {
return this._airport;
}
set airport(value: string) {
this._airport = value.substring(0, 3).toUpperCase();
}
我知道我可以使用 maxlength 限制字段长度并且它有效,但我想了解为什么我在这里所做的不起作用。
我也试过在 ngModelChange 中调用一个方法,但结果是一样的
感谢您的帮助。
【问题讨论】:
标签: angular typescript two-way-binding angular2-ngmodel