Valuta Js angular, simbolo euro dopo

Come spostare il simbolo euro dalla parte anteriore del valore per dopo di esso?

Esempio:

{{product.price | currency : "€"}} {{product.price | currency : "€"}} produrrà € 12.00

ma vorrei 12.00 €

Non devi hackerare il filtro della valuta!

AngularJS ha un grande supporto per i18n / l10n. Il filtro di valuta utilizza il simbolo di valuta predefinito dal servizio di impostazioni internazionali e lo posiziona in base alle impostazioni internazionali.

Quindi si tratta di supportare e impostare il locale giusto.

  

Se si utilizza npm o bower tutte le impostazioni locali sono disponibili tramite il pacchetto angular-i18n .

 {{ product.price | currency }} 

ora produrrà il seguente risultato:

 65,95 € 

Supporto di più localizzazioni

Se si desidera supportare più localizzazioni, fare attenzione al simbolo della valuta mentre cambia nella valuta predefinita delle impostazioni locali utilizzate. Ma 65,95 € sono diversi da $65,95 . Fornire il simbolo di valuta come parametro per essere sicuri:

 {{ product.price | currency:'€' }} 

In de-de l’output sarebbe comunque di 65,95 € ma se la posizione è eg. en-us it sarebbe €65.95 (che è, nonostante alcuni altri detti, il formato corretto per visualizzare i prezzi in euro in inglese ).

Per ulteriori informazioni su angular e i18n / l10n, consultare la guida per sviluppatori .

Non puoi con il filtro valuta. Puoi scrivere il tuo o semplicemente usare il filtro numerico.

{{(produce.price | number:2) + "€"}}

Le soluzioni proposte sono tutte sporche.

all’inizio, il filtro consente di cambiare simbolo aggiungendolo come parametro:

 {{product.price | currency : "€"}} 

ma il modo giusto è localizzare la tua app come suggerito da @Andreas se localizzi la tua app, ad esempio con l’impostazione della lingua italiana (it-it) all’interno della tua app, devi solo richiamare il filtro per ottenere il simbolo €.

 {{product.price | currency }} 

Le impostazioni internazionali italiane inseriscono il simbolo dell’euro prima del valore della valuta. È ansible modificare il valore di quella locale, o meglio sostituirli come proposto nella risposta seguita collegata:

Perché il filtro valuta AngularJS formatta i numeri negativi con parentesi?

potresti sovrascrivere l’impostazione locale mettendo il tuo simbolo di valuta (\ u00A4) come prefisso o suffisso per valore positivo e negativo.

 app.config(['$provide', function($provide) { $provide.decorator('$locale', ['$delegate', function($delegate) { if($delegate.id == 'it-it') { $delegate.NUMBER_FORMATS.PATTERNS[1].negPre = '\u00A4\u00a0-'; $delegate.NUMBER_FORMATS.PATTERNS[1].negSuf = ''; $delegate.NUMBER_FORMATS.PATTERNS[1].posPre = '\u00A4\u00a0'; $delegate.NUMBER_FORMATS.PATTERNS[1].posSuf = ''; } return $delegate; }]); }]); 

quindi dopo questa istruzione il filtro:

 {{product.price | currency}} 

produrrà l’output seguente

 € 12 

usa questo trucco

 
{{product.price | currency : '' }} €

È una domanda piuttosto vecchia, è diversa in questi giorni .. Forse era tornata anche allora ..

Quindi, se qualcun altro lo trova ..

Ma è necessario includere le impostazioni internazionali corrette per ottenere la formattazione valuta corretta nel filtro valuta.

Controlla la documentazione angular, ad esempio la formattazione della valuta olandese è di € 5,00 mentre l’inglese è di 5,00 € e l’americano è di € 5,00

Angularjs ha un grande supporto per l’internazionalizzazione e la localizzazione. L’applicazione dell’internazionalizzazione e della localizzazione dipende dallo scopo dell’applicazione. Ad esempio se la tua applicazione supporta solo euro allora hai bisogno solo della localizzazione per euro e non richiede tutta la valuta e la sua formattazione.

In tale situazione (supponendo che la situazione sia simile a quella precedente) è ansible creare una configurazione dell’app e impostare le impostazioni locali come la localizzazione richiesta utilizzando alcuni decoratori. Una funzione decoratore intercetta la creazione di un servizio, permettendogli di sovrascrivere o modificare il comportamento del servizio.

 angular .module('app', []) .config(['$provide', function($provide) { $provide.decorator('$locale', ['$delegate', function($delegate) { $delegate.NUMBER_FORMATS = { DECIMAL_SEP: '.', GROUP_SEP: ',', PATTERNS: [{ // Decimal Pattern minInt: 1, minFrac: 0, maxFrac: 3, posPre: '', posSuf: '', negPre: '-', negSuf: '', gSize: 3, lgSize: 3 }, { //Currency Pattern minInt: 1, minFrac: 0, maxFrac: 1, posPre: '\u00A4', posSuf: '', negPre: '(\u00A4', negSuf: ')', gSize: 3, lgSize: 3 }], CURRENCY_SYM: '€' } return $delegate; }]); }]) .controller('appController', ['$scope', function($scope) { $scope.price = 20.55; }]) 
  
Price : {{price | currency}}

Usando il locale (come spiegato nella risposta in questo thread – alla valuta Angular Js, simbolo dopo euro ) sembra il modo più corretto per farlo, ma non sembra offrire la flessibilità per inserire il simbolo o il nome della valuta dove lo vuoi rispetto al valore a cui stai facendo riferimento. Se è necessario disporre del simbolo di valuta dopo il valore, è ansible avere un campo product.currency separato e interpolare dopo (o prima) il valore del prezzo.

Pertanto, se hai product.price = 40 e product.currency = '€' , puoi visualizzarlo come 40 € con {{product.price}} {{product.currency}} . Oppure € 40 invertendo i campi: {{product.currency}} {{product.price}} .

Probabilmente vorresti formattare i valori di product.price tramite la pipe decimale se lo hai fatto ( https://angular.io/api/common/DecimalPipe ). – Quindi “40,00 €” sarebbe: {{product.amount | number:'2.2-2'}} {{product.currency}} {{product.amount | number:'2.2-2'}} {{product.currency}} .

fyi: in questo caso, probabilmente avrei un product.currency e product.currencySymbol distinti (ad esempio “USD” e “$” rispettivamente), ma in questo caso si sta entrando maggiormente nella funzionalità delle locale come indicato nel altra risposta che link sopra. Ma se hai bisogno di posizionare il nome o il simbolo della valuta in una posizione diversa rispetto al valore di quello che Angular ti consente di fare tramite le sue pipe native, e vuoi usare una valuta specifica per un record o un set con cui stai lavorando senza hard-coding il suo simbolo o nome sulla pagina (ad esempio se hai più valute che stai visualizzando), questo è un modo per farlo dynamicmente.

Puoi creare un filtro:

 app.filter('euroFormat', function () { return function (input) { return input+' \u20AC'; }; }); 

e applicalo sul tuo codice html con:

 Price: {{product.price| euroFormat}} 

Io uso questa soluzione nel mio progetto (in produzione) in Francia ( deve mostrare SEMPRE 5,00 €, NON mostrare MAI € 5,00 ):

 Price: {{product.price| currency:""}} € 

DEMO

Per favore, leggi la vera domanda di questo post ( valuta Js angular, simbolo euro dopo ) prima del downvote troppo veloce !!!!!