这是自定义管道:
import { Injectable, Pipe, PipeTransform, NgModule } from '@angular/core';
@Pipe({
name: 'gridColumnFilter'
})
@Injectable()
export class GridColumnFilter implements PipeTransform {
transform(columns: any, args: any[], header: string): any {
return columns.find(columns.find(x => x.header == header))
}
}
@NgModule({
declarations: [
GridColumnFilter
],
exports: [
GridColumnFilter
]
})
export class GridColumnFilterModule { }
以下是我要导入的模块:
import { GridColumnFilter } from '../../../pipes/grid-column-filter';
import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
@NgModule({
declarations: [GridColumnFilter],
imports: [CommonModule, NgModule, CommonModule],
exports: []
})
export class DigitalLinksModule{ }
这是html:
<p-column *ngFor="let col of viewState.parameterGridOptions.cols | GridColumnFilter:viewState.parameterGridOptions.cols:col.header" [field]="col.field" [header]="col.header" [sortable]="col.sortable"></p-column>
我收到错误:
The pipe 'GridColumnFilter' could not be found ("
<p-column *ngFor="let[ERROR ->] col of viewState.parameterGridOptions.cols | GridColumnFilter:viewState.parameterGridOptions.cols:co")
尚未找到解决方案。提前谢谢。
答案 0 :(得分:0)
评论re:拼写错误,管道名称区分大小写。
而不是GridColumnFilterModule,您可能需要考虑将所有管道放在共享模块中,如Angular Modules上的doco中所述,然后将该共享模块导入DigitalLinksModule(以及任何其他需要管道的模块) )。
我认为自定义管道不需要标记为@Injectable(至少我以前没见过)。