Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Typescript 如何使自定义管道可用于Angular 2中的所有组件?_Typescript_Angular - Fatal编程技术网

Typescript 如何使自定义管道可用于Angular 2中的所有组件?

Typescript 如何使自定义管道可用于Angular 2中的所有组件?,typescript,angular,Typescript,Angular,假设我创建了一个自定义彩虹大小的管道,它用彩虹的随机颜色作为css颜色道具将每个字母包装在一个跨度中。我希望能够在我的应用程序的所有组件中使用此自定义管道。目前,我正在像这样将管道导入每个组件 import { Component } from 'angular2/core'; import { RainbowizePipe } from '../pipes/rainbowize'; @Component({ 'pipes': [RainbowizePipe] }) <p&g

假设我创建了一个自定义彩虹大小的管道,它用彩虹的随机颜色作为css颜色道具将每个字母包装在一个跨度中。我希望能够在我的应用程序的所有组件中使用此自定义管道。目前,我正在像这样将管道导入每个组件

import { Component } from 'angular2/core';

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

@Component({
    'pipes': [RainbowizePipe]
})
<p>{{text | rainbowize}}</p>
在这样的模板中使用它

import { Component } from 'angular2/core';

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

@Component({
    'pipes': [RainbowizePipe]
})
<p>{{text | rainbowize}}</p>
太好了,我有彩虹色的文字。不过,最好只需将Rainbowize管道导入应用程序一次,然后在全球范围内提供


是否有推荐的Angular 2/Typescript方法使自定义管道在全球可用?

您可以将自定义管道提供给,以便整个应用程序都可以使用

bootstrap(App, [provide(PLATFORM_PIPES, {useValue: RainbowizePipe, multi:true})]);
这样,您就不必在组件的pipes属性中明确地添加它们

下面是一个例子