Angular 在AppModule上声明自定义管道时出现角度2错误

Angular 在AppModule上声明自定义管道时出现角度2错误,angular,Angular,我试图创建一个自定义管道,该管道接受一个数字,如果等于作为参数传递的值,则显示一个空屏幕。我通过复制+粘贴英雄之旅示例创建了管道文件,然后将管道添加到AppModule的声明数组中,如ToH所述。但是,当我运行代码时,在加载页面之前会出现一个错误,即 “metadata_resolver.js:275未捕获错误:意外值 由模块“AppModule”声明的“BlankIfPipe” 我使用的是Angular版本2.0.2。如果我更新到2.1,我会得到各种各样的错误 这是我的管道(尽管在声明数组抛出

我试图创建一个自定义管道,该管道接受一个数字,如果等于作为参数传递的值,则显示一个空屏幕。我通过复制+粘贴英雄之旅示例创建了管道文件,然后将管道添加到AppModule的声明数组中,如ToH所述。但是,当我运行代码时,在加载页面之前会出现一个错误,即

“metadata_resolver.js:275未捕获错误:意外值 由模块“AppModule”声明的“BlankIfPipe”

我使用的是Angular版本2.0.2。如果我更新到2.1,我会得到各种各样的错误

这是我的管道(尽管在声明数组抛出错误时它似乎不是由它引起的):

AppModule具有以下功能(某些导入已删除):


您缺少
管道({name:'blankIf'})
之前的
@
。没有它,它就不会像装饰器一样被对待,也不会向类添加所需的管道元数据。因此,当您尝试将管道添加到
声明中时,它不会被识别为管道,因为它没有管道元数据。

这是真正的代码吗?如果是这样的话,你就错过了
@
管道之前的
@peeskillet我相信我在复制+粘贴方面很差劲:(谢谢,就是这样,如果你发布一个答案,我会接受的。谢谢!现在我得到了这个错误,也许你也可以帮我解决这个问题?zone.js:388未处理的承诺拒绝:模板解析错误:无法找到管道“blankIf”。你需要在使用它的模块中声明它。它不会从app moduleOK继承,而是移动声明符。)我使用的模块的ion起作用了,但是我如何使它成为全局的呢?Docs说要在AppModule上声明它(我实际上使用了一个SharedModule,但将它放入其中都不起作用)没有使
组件/指令/管道
全局化这样的事情。它不像提供者那样工作。使用
共享模块
,您需要将其添加到
声明
导出
。无论模块需要什么,都可以将
共享模块
添加到其
导入
中。很酷,我缺少导出n共享模块。再次感谢!
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();
    }
}
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 { }