2016-04-03 13 views
2

Diyelim ki, gökkuşağı renginin rastgele rengiyle bir açıklıktaki her harfi saran özel gökkuşağı rengi bir boru oluştururum. Bu özel boruyu, uygulamamdaki tüm bileşenlerde kullanabilmek istiyorum. Şu anda, buAngular 2'deki tüm bileşenlere nasıl özel bir boru hazırlayabilirim?

<p>{{text | rainbowize}}</p> 

gibi şablonları bu

import { Component } from 'angular2/core'; 

import { RainbowizePipe } from '../pipes/rainbowize'; 

@Component({ 
    'pipes': [RainbowizePipe] 
}) 

gibi her bileşenin içine borular ithal ve kullanıyorum Yani bu harika, ben gökkuşağı renkli metin var. Bununla birlikte, Rainbowize boruyu yalnızca uygulamaya bir kez aktarmanız ve ardından global olarak kullanıma sunmanız yeterli olacaktır.

Küresel çapta özel bir boru yapmak için önerilen Açısal 2/Typescript yaklaşımı var mı?

cevap

4

Özel borunuzu PLATFORM_PIPES numaralı telefona sağlayabilirsiniz, böylece tüm uygulamanızın kullanımına sunulmuştur.

bootstrap(App, [provide(PLATFORM_PIPES, {useValue: RainbowizePipe, multi:true})]); 

siz açık bir şekilde bileşenlerin pipes özelliğinde eklemek zorunda kalmazsınız Bu şekilde.

Örnek bir çalışma ile birlikte bir plnkr.

+0

Teşekkürler Eric, harika çalıştı! –