У меня сейчас есть 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;
}
}