javascript - Obține simbolul valutei Angular 2


Construiesc o aplicație folosind Angular 2 și currency pipe, dar nu pot găsi o modalitate de a obține simbolul valutei conform valorii ISO fără niciun număr. Ceea ce vreau să spun este că vreau doar simbolul fără a seta un număr care să fie formatat.

Situație normală $3.00 Vreau doar simbolul $, nu numărul

Răspuns #1

Angular oferă o metodă încorporată getCurrencySymbol care vă oferă simbolul monedei. Puteți scrie un pipe ca un înveliș peste acea metodă astfel

import { Pipe, PipeTransform } from '@angular/core';
import { getCurrencySymbol } from '@angular/common';

@Pipe({
  name: 'currencySymbol'
})
export class CurrencySymbolPipe implements PipeTransform {

  transform(
    code: string,
    format: 'wide' | 'narrow' = 'narrow',
    locale?: string
  ): any {
    return getCurrencySymbol(code, format, locale);
  }
}

și apoi folosește ca:

{{'USD'| currencySymbol}} ===> $
{{'INR'| currencySymbol}} ===> ₹

Demonstrație Live Stackblitz:

Adresa URL a aplicației: https://angular-currency-symbol-pipe.stackblitz.io

Adresă URL editor: https://stackblitz.com/edit/angular-currency-symbol-pipe

Răspunsul #2

Răspuns în 2017: Deoarece doream DOAR simbolul pentru monedă, am ajuns să extind pipe-ul pentru monedă cu un număr constant și să returnez doar simbolul. Se simte oarecum ca un „hack” să ai un număr constant, dar cum nu vreau să creez noi hărți de monedă și nu sunt în măsură să furnizez un număr, cred că este cea mai simplă metodă.

Iată ce am făcut:

import { Pipe, PipeTransform } from '@angular/core';
import {CurrencyPipe} from "@angular/common";

@Pipe({name: 'currencySymbol'})
export class CurrencySymbolPipe extends CurrencyPipe implements 
PipeTransform {
    transform(value: string): any {
    let currencyValue = super.transform(0, value,true, "1.0-2");
    return currencyValue.replace(/[0-9]/g, '');
    }
}

Acum îl pot folosi ca:

{{ 'EUR' | currencySymbol }} and get '€'

Mulțumesc pentru ajutorul și ideile tale!

Actualizare: Am schimbat răspunsul acceptat cu cel al lui Varun, deoarece în 2020 aș folosi getCurrencySymbol() pentru a realiza această sarcină