HTML Ввод не форматируется после ввода идентичного значения - PullRequest
0 голосов
/ 20 февраля 2020

У меня сейчас есть html [value]="format(number)", который запускается снова и снова и вызывает функцию форматирования, которая добавляет «%» к числу. Этот номер обновляется следующим образом: html (blur)="updateNumber($event, number)". (Упрощенный код) Обе функции вызываются, и обе функции действуют соответствующим образом с помощью кода.

Если вы введете 13, вы получите 13% после выхода из ввода. Измените это на 12, вы получите 12%.

Проблема возникает, когда вы сейчас вводите 12 ОПЯТЬ и оставляете поле, оно НЕ будет форматироваться и останется 12. Не 12%, даже если функция форматирования вернула '12 %».

Надеюсь, кто-то знает, что происходит, я чувствую, что попробовал разные способы сделать это, и форматирование просто не работает на одинаковых значениях.

format(amount) {
    if (amount !== null && '' !== amount && !(isNaN(amount))) {
      amount = amount + '%';
    }
    return amount;
  }
private updateNumber(event, number) {
    const newValue = event.target.value.replace('%', '');
    if (!(isNaN(newValue)) && newValue !== '') {
      number = roundToDecimals(newValue, 2);
    } else {
      number = newValue;
    }
  }
...