2016-03-05 19 views
7

मैं मूल कोणीय 2 पाइप में कुछ अतिरिक्त कार्यक्षमता जोड़ना चाहता हूं।कोणीय 2 कस्टम पाइप में मूल पाइप का उपयोग करें

यानी। मुद्रा पाइप पर कुछ अतिरिक्त स्वरूपण किया गया। ऐसा करने के लिए मैं अपने कस्टम पाइप के घटक कोड में मौजूदा पाइप का उपयोग करना चाहता हूं।

क्या ऐसा कोई तरीका है?

@Pipe({name: 'formatCurrency'}) 
export class FormatCurrency implements PipeTransform { 
    transform(value:number, args:string[]) : any { 
    var formatted = value/100; 

    //I would like to use the basic currecy pipe here. 
    ///100 | currency:'EUR':true:'.2' 

    return 'Do some extra things here ' + formatted; 
    } 
} 

उत्तर

14

आप इस तरह CurrencyPipe विस्तार कर सकते हैं, कुछ:

export class FormatCurrency extends CurrencyPipe implements PipeTransform { 
    transform(value: any, args: any[]): string { 
    let formatedByCurrencyPipe = super.transform(value, args); 
    let formatedByMe; 
    // do your thing... 
    return formatedByMe; 
    } 
} 

आप source को देखें, तो यह है कि कैसे कोणीय पाइप काम करने के लिए इसी तरह की है ...


(द्वारा जोड़ा गया प्रश्न लेखक)

मुद्रापश्चिमी कक्षा आयात करने के लिए मत भूलना

import {CurrencyPipe} from 'angular2/common'; 
+0

thnx! मैंने आपके उत्तर में आयात लाइन को जोड़ा, उसे यह पता लगाने के लिए खोजना पड़ा कि मुद्रापाइप कहां आयात किया गया है। –

9

वैकल्पिक रूप से, आप CurrencyPipe इंजेक्षन कर सकते हैं:

bootstrap(AppComponent, [CurrencyPipe]); 

पाइप:

@Pipe({ 
    name: 'mypipe' 
}) 
export class MyPipe { 
    constructor(private cp: CurrencyPipe) { 
    } 
    transform(value: any, args: any[]) { 
     return this.cp.transform(value, args); 
    } 
} 
+3

मुझे यह भी पसंद है। क्या एक मुद्रापाइप प्रदाता के लिए कोई और तरीका है? इसे बूटस्ट्रैप में जोड़ना थोड़ा गन्दा लगता है। मैं सफलता के बिना निम्नलिखित की कोशिश की: @Pipe ({ नाम: 'formatCurrency', प्रदाताओं: [CurrencyPipe], पाइप [CurrencyPipe] }) –

+0

अच्छा प्रश्न है। मुझे लगता है कि आप घटक की निर्भरता के रूप में [CurrencyPipe] भी निर्दिष्ट कर सकते हैं: प्रदाता: [CurrencyPipe]। मैं मानता हूं, यह बहुत बुरा है यह पाइप स्तर पर काम नहीं करता है। – pixelbits

संबंधित मुद्दे