【发布时间】:2018-09-07 06:24:21
【问题描述】:
我想在我的应用程序的几个部分中使用 Angular 组件,包括延迟加载模块中的组件。我不知道如何声明组件以在惰性模块中使用它。我将向您展示不同文件的一些相关部分:
app.module.ts
import { FpgTimeComponent } from './fpgTime/fpg-time.component';
@NgModule({
declarations: [
AppComponent,
(...)
FpgTimeComponent
app.routing.ts
const appRoutes: Routes = [
{ path: '', redirectTo: 'customer', pathMatch: 'full' },
{
path: 'customer',
component: CustomerComponent
},
{
path: 'lazy',
loadChildren: 'app/lazy/lazy.module#LazyModule'
}
];
lazy.module.ts
import { FpgTimeComponent } from '../fpgTime/fpg-time.component';
import { LazyComponent } from './lazy.component';
import { routing } from './lazy.routing';
@NgModule({
imports: [routing],
declarations: [
LazyComponent,
FpgTimeComponent
]
})
应用程序加载,但是当我去惰性路由时,它会抛出以下错误:
未捕获(承诺中):错误:类型 FpgTimeComponent 是 2 个模块的声明:AppModule 和 LazyModule!请考虑 将 FpgTimeComponent 移动到导入 AppModule 的更高模块和 懒惰模块。你也可以创建一个新的 NgModule 来导出和 包括 FpgTimeComponent 然后在 AppModule 中导入该 NgModule 和 懒惰模块。
我没有在任何地方导入 LazyModule,因为它是延迟加载的。那么,我如何声明组件 FpgTimeComponent 以便能够在惰性模块中(以及在非惰性组件中)使用它?
提前致谢,
【问题讨论】:
标签: angular