2017-02-15 69 views
1

我想使用內置貨幣管道製作自定義貨幣管道。我想要使​​用的方式是{{ anyNumber | customCurrency }}.然後在我的customCurrency管道中,我想使用內置的貨幣管道。我可以根據某些邏輯確定參數到貨幣管道,並且不想指定區域設置和其他參數,例如{{anyNumber | currency:'USD':false:'1:0-0'}}Angular 2 - 如何在自定義管道中使用內置管道

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

要麼使用依賴注入或變換方法,作爲貨幣管是無狀態的,只是'new'一個(你可以'@Inject(LOCALE_ID)'作爲它的構造函數參數傳遞)。 – jonrsharpe

回答

0

你應該注入內置管到您的自定義管道比你可以把它與您的默認值

@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); 
} 

}