我正在尝试创建一个带有数字的自定义管道,如果等于作为参数传递的值,则显示一个空屏幕。我通过复制+粘贴Tour of Heroes示例创建了管道文件,然后在ToM提到的AppModule声明数组上添加了管道。但是,当我运行代码时,我在页面加载之前收到错误,说
" metadata_resolver.js:275未捕获错误:意外值 ' BlankIfPipe'由模块' AppModule"
声明
我使用的是Angular 2.0.2版。如果我更新到2.1,我会遇到各种各样的错误。
这是我的管道(虽然它似乎不是由它引起的,因为声明数组会引发错误):
import { Pipe, PipeTransform } from '@angular/core';
Pipe({ name: 'blankIf' })
export class BlankIfPipe implements PipeTransform {
transform(value: number, replaceIf: number): string {
return value === replaceIf ? '' : value.toString();
}
}
AppModule有这个(删除了一些导入):
import { LabTestService } from './lab-test/lab-test.service';
import { BlankIfPipe } from './blank-if.pipe';
@NgModule({
declarations: [
AppComponent,
BlankIfPipe
],
imports: [
NgbModule.forRoot(),
BrowserModule,
FormsModule,
CoreModule,
LabTestModule
],
providers: [ LabTestService ], // should this be moved to LabTestModule?
bootstrap: [ AppComponent ]
})
export class AppModule { }
答案 0 :(得分:3)
@
之前你错过了Pipe({ name: 'blankIf' })
。没有它,它不会被视为装饰器,也不会将所需的管道元数据添加到类中。因此,当您尝试将管道添加到declarations
时,它不会被识别为管道,因为它没有管道元数据。