Итак, я борюсь с этой проблемой в течение некоторого времени, и все же я не мог найти ответ.
В основном у меня это:
const formattedCurrency = $filter('currency')(input);
Это возвращает мне что-то вроде этого $0.00
($ кажется угловой валютой по умолчанию CURRENCY_SYM:"$"
)
Чего я хочу добиться, так это сделать этот возврат не $0.00
, а динамической валютой, например €0.00
или £0.00
.
Итак, предположим, что у меня есть html-страница с этим текстом:
У меня есть 0,00 долл. США
Если я сделаю это:
this.$locale.NUMBER_FORMATS.CURRENCY_SYM = '€';
Моя страница мгновенно изменится на:
У меня есть 0,00 €
Это здорово, но проблема в том, что я получаю знак валюты из обещания, например:
this.getUserCurrency(this.id).then((currency) => {
$locale.NUMBER_FORMATS.CURRENCY_SYM = currency; // this does not work
});
И проблема в том, что вышеуказанное не работает, оно не меняет мою HTML-страницу, даже несмотря на то, что мой $locale был изменен.
Мой вывод после моих исследований к настоящему времени таков:
Если я изменю валюту $locale, она автоматически изменит все мои валюты с моей страницы, но если я сделаю это внутри асинхронной функции (promise), моя локаль изменится, но это больше не повлияет на DOM.
Любое решение этой проблемы?