我有一个需要使用组件的延迟加载模块.我已将其添加到应用程序模块声明中,并期望这应该使声明的组件应用程序范围广泛.
虽然Angular无法识别延迟加载模块中的组件.我试着将它添加到这两个模块的声明,然后找来一个警告,询问以加入上述较高的模块中的声明app.module
和lazyLoaded.module
.
例如(nameOfModule/Component
)
错误:类型(DeclareMeComponent)是2个模块的声明的一部分:(AppModule)和(LazyLoadedModule)!请考虑将(DeclareMeComponent)移动到导入AppModule和(LazyLoadedModule)的更高模块.您还可以创建一个新的NgModule,它导出并包含(DeclareMeComponent),然后在(AppModule)和(DeclareMeComponent)中导入NgModule.
什么是高比app.module
?以及如何让延迟加载的模块继承/使用声明的组件以及app模块?
高于AppModule
将是一个SharedModule
。在这里,您可以定义将AppModule
在所有延迟加载的模块中以及内部使用的组件。
@NgModule({
imports: [
CommonModule
],
declarations: [
DeclareMeComponent
],
exports: [
DeclareMeComponent,
CommonModule
]
})
export class SharedModule {}
Run Code Online (Sandbox Code Playgroud)
在这里,您将声明并导出组件,指令,管道,整个shebang。您将在整个应用程序中使用的核心构建块。在这里,您可能还会导入和导出CommonModule
。就像一样BrowserModule
,但是您可以在一个应用程序中多次导入。
现在,您可以AppModule
通过导入在其他模块中使用共享组件。
@NgModule({
imports: [
BrowserModule,
SharedModule
]
})
export class AppModule {}
Run Code Online (Sandbox Code Playgroud)
正如你所看到的,没有必要宣布DeclareMeComponent
里面的AppModule
,因为它是从更高的进口SharedModule
归档时间: |
|
查看次数: |
1400 次 |
最近记录: |