2

我有一个 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:

在此处输入图像描述

谢谢!

4

0 回答 0