管道'searchfilter'找不到?

时间:2017-08-30 10:10:18

标签: angular

我有自定义管道。我导入到组件的ngModule。

declarations: [SearchFilterPipe]

在这个组件中,我尝试将此管道用作:

<div *ngFor="let item of studyPlan | searchfilter : value">

它给了我一个错误:The pipe 'searchfilter' could not be found。 此行中也没有变量value

管道是:

import { Injectable, Pipe, PipeTransform } from '@angular/core';

@Pipe({
  name: 'searchfilter'
})

@Injectable()
export class SearchFilterPipe implements PipeTransform {
  transform(items: any[], field: string, value: string): any[] {
    if (!items) { return []; }
    return items.filter(it => it[field] === value);
  }
}

组件模块是:

@NgModule({
     ...
     declarations: [SearchFilterPipe],
      exports: [SearchFilterPipe]

})

1 个答案:

答案 0 :(得分:2)

要么

  • @Pipe({name: 'searchfilter'})装饰器与
  • 不完全匹配
  • declarations: [SearchFilterPipe]与包含<div *ngFor="let item of studyPlan | searchfilter : value">
  • 的组件不在同一模块中 如果管道和使用它的组件是不同模块的一部分,则
  • imports: [TheModuleContainingThePipe]会丢失。
  • 包含管道的exports: [SearchFilterPipe]中缺少
  • @NgModule()