如何将路由注入外部 angular 模块
How to inject routes to external angular module
我正在使用 angular 4.0.2。我想为我的应用程序创建一个可重用的布局模块,其中包含一些 html 带有导航栏、侧边栏等的布局。模板包含路由器出口,但我不知道如何从外部注入路由。
这是我正在尝试的:
@NgModule({
imports: [
CommonModule,
FormsModule,
RouterModule
],
declarations: [Layout, Sidebar, Navbar]
})
export class LayoutModule {
static forRoot(routes): ModuleWithProviders {
return {
ngModule: LayoutModule,
providers: [provideRoutes(routes)]
}
}
}
然后在 application.module 我将导入提供(特定于应用程序)路由的模块:
LayoutModule.forRoot(PagesRoutes)
很遗憾,它不起作用。我的路线没有注册,我收到 404。
但是,当我将其更改为:
@NgModule({
imports: [
CommonModule,
FormsModule,
RouterModule
],
declarations: [Layout, Sidebar, Navbar],
providers: [provideRoutes(PagesRoutes)]
})
export class LayoutModule {
}
然后路由工作正常,除了它们没有作为依赖项注入。
知道怎么做吗?
我找到了解决问题的方法。
在我的客户端应用程序上,我有一个围绕外部 LayoutModule 的薄包装器
@NgModule({
imports: [
RouterModule,
LayoutModule
],
providers: [provideRoutes(PagesRoutes)]
})
export class LayoutWrapperModule {
}
以这种方式注入路由是可行的。
我正在使用 angular 4.0.2。我想为我的应用程序创建一个可重用的布局模块,其中包含一些 html 带有导航栏、侧边栏等的布局。模板包含路由器出口,但我不知道如何从外部注入路由。
这是我正在尝试的:
@NgModule({
imports: [
CommonModule,
FormsModule,
RouterModule
],
declarations: [Layout, Sidebar, Navbar]
})
export class LayoutModule {
static forRoot(routes): ModuleWithProviders {
return {
ngModule: LayoutModule,
providers: [provideRoutes(routes)]
}
}
}
然后在 application.module 我将导入提供(特定于应用程序)路由的模块:
LayoutModule.forRoot(PagesRoutes)
很遗憾,它不起作用。我的路线没有注册,我收到 404。
但是,当我将其更改为:
@NgModule({
imports: [
CommonModule,
FormsModule,
RouterModule
],
declarations: [Layout, Sidebar, Navbar],
providers: [provideRoutes(PagesRoutes)]
})
export class LayoutModule {
}
然后路由工作正常,除了它们没有作为依赖项注入。
知道怎么做吗?
我找到了解决问题的方法。
在我的客户端应用程序上,我有一个围绕外部 LayoutModule 的薄包装器
@NgModule({
imports: [
RouterModule,
LayoutModule
],
providers: [provideRoutes(PagesRoutes)]
})
export class LayoutWrapperModule {
}
以这种方式注入路由是可行的。