Bonjour angular amis,
Je travaille sur une application angular2 (plusieurs en fait). Et je vis aux Pays-Bas.
Actuellement, je formate ma devise avec les éléments suivants:
{{someIntegerWithCentsToBeDivided/100 | devise: 'EUR': vrai: '1.0-2'}}
Cela affiche quelque chose comme 500 pour Eurosign 5 et 501 pour Eurosign 5.01.
Maintenant, nous les Hollandais, nous aimons vraiment les virgules dans l'autre sens, donc tout le monde sait comment changer le. à un,?
Points bonus si quelqu'un sait afficher 5, - éventuellement quand il n'y a pas de cents. Je pense maintenant à étendre le CurrencyPipe
Votre problème a probablement été résolu il y a quelque temps, mais juste pour référence pour d'autres développeurs néerlandais (comme moi):
Créez un tuyau personnalisé:
import {Pipe} from '@angular/core';
@Pipe({
name: 'currencyFormat'
})
export class CurrencyFormat {
transform(value: number,
currencySign: string = '€ ',
decimalLength: number = 2,
chunkDelimiter: string = '.',
decimalDelimiter:string = ',',
chunkLength: number = 3): string {
value /= 100;
let result = '\\d(?=(\\d{' + chunkLength + '})+' + (decimalLength > 0 ? '\\D' : '$') + ')';
let num = value.toFixed(Math.max(0, ~~decimalLength));
return currencySign+(decimalDelimiter ? num.replace('.', decimalDelimiter) : num).replace(new RegExp(result, 'g'), '$&' + chunkDelimiter);
}
}
Vous pouvez maintenant utiliser:
{{someIntegerWithCentsToBeDivided | currencyFormat}}
Le Pipe contient déjà tous les paramètres par défaut néerlandais, mais vous pouvez facilement les modifier ou les utiliser comme arguments dans le modèle. Par exemple:
{{1234567 | currencyFormat:'$',2,' ','.',3}}
va donner $12 345.67
en sortie.
Je suis trop tard mais j'ai trouvé une solution.
Je crée juste un tuyau pour remplacer quoi que ce soit:
import { PipeTransform, Injectable, Pipe } from '@angular/core';
@Pipe({
name: 'replace'
})
@Injectable()
export class ReplacePipe implements PipeTransform {
constructor(){}
transform(item: any, replace, replacement): any {
if(item == null) return "";
item = item.replace(replace, replacement);
return item;
}
}
Je l'ai utilisé deux fois pour résoudre votre cas.
{{ 5.01999 | currency:'BRL':true | replace:'.':',' | replace:',00':',-' }}}