StivinKing
@StivinKing

Как вывести символ любой валюты через currency?

Доброго времени суток,

Есть вывод информации через *ngFor в таблицу, где есть валюты. Вывод следующий:
<td>{{total.sum | currency: total.currency_code : true : '.2'}}</td>

total.currency_code = разным валютам. но символ выводится только для доллара (USD) и евро (EUR), а для остальных, к примеру рубля (RUB) выводится просто слово "RUB".
Искал информацию, много различных дополнений. Но мне почему-то кажется, что фишка встроенная. Кто-то нибудь сталкивался с таким?
  • Вопрос задан
  • 1985 просмотров
Решения вопроса 1
В Angular2 currency pipe в конечном счете исполняет вот эту функцию

new Intl.NumberFormat([locales[, options]])

https://developer.mozilla.org/ru/docs/Web/JavaScri...

Чтобы pipe вернул русский символ рубля. ему нужно подставить правильную локаль ru-RU. Ее можно переопределить глобально, но раз ты используешь разные котировки, то можно сделать кастомный pipe

К примеру вот так может работать (Plunker):

import { CurrencyPipe } from '@angular/common';

const map = {
  'RUB': 'ru-RU',
  'JPY': 'ja-JP'
}

@Pipe({name: 'localizedCurrency'})
export class LocalizedCurrencyPipe implements PipeTransform {
  transform(value: any, currencyCode: string = 'USD', 
          symbolDisplay: boolean = false, digits: string = null): string {
    return new CurrencyPipe(map[currencyCode]).transform(value, currencyCode, symbolDisplay, digits);
  }
}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы