Angular 2 RC.5 共享模块找不到管道
Angular 2 RC.5 Shared Module can't find pipes
我正在更新我的应用程序以使用模块结构,但在尝试将我的管道组件添加到共享模块时,我 运行 遇到了一个奇怪的问题。从我读到的内容来看,我的一切都设置正确,所以我一定是遗漏了一些东西。
错误:Unhandled Promise rejection: Template parse errors: The pipe 'cmgTitleize' could not be found
我有一个 BrowseModule
,这个模块声明了一个 ProjectCardComponent
,它有一个使用 cmgTitleize
管道的模板。为了提供对 TitleizePipe
的访问,我导入了我的 SharedModule
.
@NgModule({
declarations: [
...,
ProjectCardComponent
],
imports: [
...,
SharedModule
],
providers: [
...
]
})
export class BrowseModule { }
SharedModule
,导入PipesModule
:
@NgModule({
declarations: [
...
],
exports: [
...
],
imports: [
...,
PipesModule
]
})
export class SharedModule { }
PipesModule
声明并导出 TitelizePipe
:
@NgModule({
declarations: [
...
TitleizePipe
],
exports: [
...
TitleizePipe
]
})
export class PipesModule { }
最后,这里是 TitleizePipe 的完整性检查:
@Pipe({
name: 'cmgTitleize'
})
export class TitleizePipe implements PipeTransform {
...
}
看来我还需要导出 SharedModule
中的 PipesModule
如果您在共享模块中使用静态 "forRoot()",您仍然需要导出管道或任何其他必需的模块:
@NgModule({
exports: [
MyPipesModule //<---------------- HERE
]
})
export class SharedModule {
static forRoot(): ModuleWithProviders {
return {
ngModule: SharedModule,
providers: [
MySingletonServices
]
};
}
}
然后您只需将其导入您的主应用程序模块:
@NgModule({
declarations: [
AppComponent
],
imports: [
SharedModule.forRoot() // <------------
],
providers: [],
bootstrap: [AppComponent]
})
export class AppModule { }
我正在更新我的应用程序以使用模块结构,但在尝试将我的管道组件添加到共享模块时,我 运行 遇到了一个奇怪的问题。从我读到的内容来看,我的一切都设置正确,所以我一定是遗漏了一些东西。
错误:Unhandled Promise rejection: Template parse errors: The pipe 'cmgTitleize' could not be found
我有一个 BrowseModule
,这个模块声明了一个 ProjectCardComponent
,它有一个使用 cmgTitleize
管道的模板。为了提供对 TitleizePipe
的访问,我导入了我的 SharedModule
.
@NgModule({
declarations: [
...,
ProjectCardComponent
],
imports: [
...,
SharedModule
],
providers: [
...
]
})
export class BrowseModule { }
SharedModule
,导入PipesModule
:
@NgModule({
declarations: [
...
],
exports: [
...
],
imports: [
...,
PipesModule
]
})
export class SharedModule { }
PipesModule
声明并导出 TitelizePipe
:
@NgModule({
declarations: [
...
TitleizePipe
],
exports: [
...
TitleizePipe
]
})
export class PipesModule { }
最后,这里是 TitleizePipe 的完整性检查:
@Pipe({
name: 'cmgTitleize'
})
export class TitleizePipe implements PipeTransform {
...
}
看来我还需要导出 SharedModule
PipesModule
如果您在共享模块中使用静态 "forRoot()",您仍然需要导出管道或任何其他必需的模块:
@NgModule({
exports: [
MyPipesModule //<---------------- HERE
]
})
export class SharedModule {
static forRoot(): ModuleWithProviders {
return {
ngModule: SharedModule,
providers: [
MySingletonServices
]
};
}
}
然后您只需将其导入您的主应用程序模块:
@NgModule({
declarations: [
AppComponent
],
imports: [
SharedModule.forRoot() // <------------
],
providers: [],
bootstrap: [AppComponent]
})
export class AppModule { }