2016-05-04 19 views
9

uzatmak için: onun artık çalışmıyor RC1 üzerindeAşağıdaki kod ince çalışıyordu (dahil) angular2.beta15 kadar angular2 DatePipe

@Pipe({ 
    name: 'isoDate' 
}) 
export class ISODatePipe extends DatePipe implements PipeTransform { 
    transform(isoDate: string, args: any[]): string { 
    return super.transform(new Date(isoDate), args); 
    } 
} 

, ben borularımla sözdizimi ayarlanmış sonra bile:

@Pipe({ 
    name: 'isoDate' 
}) 
export class ISODatePipe extends DatePipe implements PipeTransform { 
    transform(isoDate: string, pattern?: string): string { 
    const date = new Date(isoDate); 
    return super.transform(date, pattern); 
    } 
} 

Tarayıcıda gördüğüm mesaj şu şekildedir: The pipe 'isoDate' could not be found.

extends parçasını kaldırır ve bazı dizgiyi döndürürsem tekrar çalışır.

Neler değişti?

P.S.

Şu

@Pipe({ name: 'isoDate' }) 
export class ISODatePipe implements PipeTransform { 
    private datePipe: DatePipe = new DatePipe(); 

    transform(isoDate: string, pattern?: string): string { 
    const date = new Date(isoDate); 
    return this.datePipe.transform(date, pattern); 
    } 
} 

Çalışıyor olarak değiştirdim, ama biraz garip görünüyor.

+0

Bkz. Https://auth0.com/blog/2015/09/03/angular2-series-working-with-pipes/, borunun classname ile '@ View' ayarını yapmalısınız. @ Pipe’in 'name' özellik değerinin düzeltilmesi. – Niloct

+0

Makale geçen yıl Eylül ayında yazıldı. Bahsettiğim kod birkaç hafta önce yayınlanmak için çalışıyordu. Şu anda 'Bileşen' dekoratör btw '' boru 'sağlayabilir. – ValeriiVasin

+0

Pekala, geçici çözümünüzü gördüm. Yanıltıcı olmasından dolayı üzgünüm. – Niloct

cevap

3

Neler değişti?

Apparantely DatePipe sınıfı şimdi

constructor(@Inject(LOCALE_ID) private _locale: string) {}

böylece parametre olarak LOCALE_ID geçebilir constructor etti:
const datePipe = new DatePipe(); 

yerel ngc --locale=en-US local_id DatePipe yapıcı geçirilen olsun belirterek derlemek zaman.