2017-02-15 2 views
1

Je souhaite créer un tube de devise personnalisé à l'aide du tube de devise intégré. La façon dont je veux utiliser est {{ anyNumber | customCurrency }}. Ensuite, à l'intérieur de mon tube customCurrency, je veux utiliser le tube de devise intégré. Je peux décider des paramètres de la devise en fonction d'une certaine logique et je ne veux pas spécifier les paramètres régionaux et autres partout comme {{anyNumber | currency:'USD':false:'1:0-0'}}.Angular 2 - Comment utiliser un tube intégré dans un tube personnalisé

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

@Pipe({ 
    name: 'customCurrency' 
}) 
export class CustomCurrencyPipe implements PipeTransform { 

    transform(value: any, args?: any): any { 
     const defaultLocale = 'USD'; 
     const showSymbol = false; 

     ......some logic here......  

     //HOW TO USE CURRENCY PIPE HERE? 

} 

} 
+1

Soit utiliser l'injection de dépendance ou, comme le tube de monnaie est sans état, juste 'new' one up (vous pouvez' @Inject (LOCALE_ID) 'pour passer comme argument constructeur). – jonrsharpe

Répondre

0

Vous devez injecter intégré dans le tuyau dans votre tube de mesure que vous pouvez l'appeler Transformons méthode avec vos valeurs par défaut

@Pipe({ 
    name: 'customCurrency' 
}) 
export class CustomCurrencyPipe implements PipeTransform { 

    constructor(public currencyPipe: CurrencyPipe) { 
    } 

    transform(value: any, args?: any): any { 
     const currencyCode = 'USD'; 
     const showSymbol = false; 
     return currencyPipe.transform(value, currencyCode, showSymbol); 
} 

}