我有一个 html 类型的输入text,它连接[(ngModel)]到一个formattedValue变量,该变量在输入值时更新。
我使用此输入字段主要用于显示数字,它的类型text是因为在用户输入数字后,我想显示它的格式(例如:1234-> 1,234)。
当我输入数字时会出现问题0,它将其转换为字符串"0"并设置输入字段值,但输入总是在重置 - 意思是,它的值正在被删除并且placeholder正在显示。
这是我的输入:
<input
class="form-control form-text-input"
type="text"
name="field-{{ field.id }}"
id="field-{{ field.id }}"
[(ngModel)]="formattedValue"
(change)="updateFieldValue($event.target)"
placeholder="Enter any number">
这就是逻辑:
formattedValue = '';
updateFieldValue($target: any) {
const decimalValue = parseFloat($target.value.replace(/,/g, ''));
if (decimalValue > 999) {
this.formattedValue = this._getFormattedValue();
} else {
this.formattedValue = decimalValue.toString();
}
}
private _getFormattedValue(): string {
return DecimalPipe.prototype.transform(this.field.value || this.field.defaultValue, undefined, 'en-US');
}
这是一个显示问题的 GIF:
谢谢!
