2

我有一个自定义管道可以做一些“事情”

@Pipe({name: 'doSomethingAwesome'})
export class DoSomethingAwesomePipe: implements PipeTransform 
{...}

然后我有两个模块Module1Module2每个模块的声明数组如下所示:

declarations: [DoSomethingAwesomePipe,...]

当我启动应用程序时,我收到以下错误:

metadata_resolver.js:369Uncaught 错误:DoSomethingAwsomePipe 类型是 2 个模块声明的一部分:Module1 和 Module2!请考虑将 DoSomethingAwsomePipe 移至导入 Module1 和 Module2 的更高模块。您还可以创建一个新的 NgModule,它导出并包含 DoSomethingAwsomePipe,然后在 Module1 和 Module2 中导入该 NgModule。

所以我完全按照它的描述做,并PipesModule在我这样设置的模块的声明中创建一个declarations: [DoSomethingAwesomePipe,...]

然后我在两者中都导入了这个模块,Module1然后Module2我得到以下错误:

zone.js:388 未处理的承诺拒绝:模板解析错误:找不到管道“doSomethingAwesome”(“

我真的很难过。我尝试将导入移动到根模块,但没有得到任何地方。

感谢任何帮助。

谢谢

4

1 回答 1

3

您需要导出DoSomethingAwesomePipefromPipesModule然后导入PipesModuleModule1and Module2

...
declarations: [DoSomethingAwesomePipe,...]
exports: [DoSomethingAwesomePipe]
...
于 2016-10-26T20:35:43.323 回答