Angular 角度5-定制管道';找不到';错误
我已经尝试了我在那里看到的所有建议,但仍然遇到可怕的:Angular 角度5-定制管道';找不到';错误,angular,angular5,Angular,Angular5,我已经尝试了我在那里看到的所有建议,但仍然遇到可怕的:模板解析错误:无法找到管道“orderFilter” 在我的SharedModule.ts(导入MyComponent)中,我有: 管道代码(目前比较简单): 在MyComponent.html中,我有: {{item | orderFilter}} 我有点不知所措。。除非我在实现中遗漏了一些特定的东西。有什么想法吗?在这个最小的复制中,当我从app.module的“声明”中删除管道时,我得到了相同的错误: 当我把它加回去的时候,维奥拉!一
模板解析错误:无法找到管道“orderFilter”
在我的SharedModule.ts(导入MyComponent)中,我有:
管道代码(目前比较简单):
在MyComponent.html中,我有:
{{item | orderFilter}}
我有点不知所措。。除非我在实现中遗漏了一些特定的东西。有什么想法吗?在这个最小的复制中,当我从app.module的“声明”中删除管道时,我得到了相同的错误:
当我把它加回去的时候,维奥拉!一切正常。这使我相信错误在使用管道模块的模块中。您是否记得将管道模块导入MyComponent所在的模块?请尝试为管道命名,您不能将管道命名为“过滤器” 当我们在共享模块文件中添加任何组件或指令时,因此在声明中添加该模块时,我们也需要添加到导出数组中。 请参阅以下代码:
import { OrderFilterPipe } from '../pipes/order-filter.pipe';
@NgModule({
declarations: [OrderFilterPipe],
exports: [OrderFilterPipe] // you need to add this line
})
错误消息提到
myPipe
。也许你在标记的某个地方有这样的输入错误。为什么你要把它同时作为声明和提供者添加呢?从提供者中删除它。另外,在angular中直接不鼓励您尝试,只需在组件中使用数组方法或RxJS进行筛选。@ConnorsFan抱歉,我的示例中有一个输入错误-我更改了名称以保护无辜者;)当您说SharedModule导入组件时,您的意思是什么?是否将组件添加到模块中的“导入”属性?您只能导入其他模块。@KeenanDiggs omg。。我找到了根本原因。。我的应用程序实际上没有导入SharedModule。。它正在从其他模块导入MyComponent。。这就是它找不到过滤器的原因。啊。。谢谢,Keenan你帮我找到了我代码中的错误!我刚刚使用了一个从我的代码中提取的坏例子-刚刚更新为“orderFilter”以消除混淆是的,我确实看到它在你的例子中起作用。奇怪的是,为什么没有记在心里。。我一定是忽略了什么。是的,管道导入到SharedModule中,MyComponent也存在于模板中的no-tslint错误中。。只是出于某种原因,在运行时它无法找到它并抛出该错误
{{item | orderFilter}}
import { OrderFilterPipe } from '../pipes/order-filter.pipe';
@NgModule({
declarations: [OrderFilterPipe],
exports: [OrderFilterPipe] // you need to add this line
})