【发布时间】:2016-12-13 17:01:26
【问题描述】:
我在 angular2 中有根模块和一个子模块,它们都定义了自己的路由。 在子模块中,我将 RouterModule 配置为
RouterModule.forChild(ROUTES)
在根模块(父级)中,将RouterModule配置为
RouterModule.forRoot(ROUTES)
我在子节点和根节点中使用相同的路由名称
在孩子中
export const ROUTES: Routes = [
{ path: '', component: HomeComponent }, //outputs I am child
{ path: 'home', component: HomeComponent }
];
在根(父)中
export const ROUTES: Routes = [
{ path: '', component: HomeComponent }, //outputs I am parent
{ path: 'home', component: HomeComponent }
];
我在根模块中导入子模块
import .....
import {AppModule as ChildModule} from 'child-module/src/app/app.module';
@NgModule({
bootstrap: [ AppComponent ],
declarations: [
AppComponent,
HomeComponent
],
imports: [ // import Angular's modules
BrowserModule,
FormsModule,
HttpModule,
ChildModule,
RouterModule.forRoot(ROUTES, { useHash: true, preloadingStrategy: PreloadAllModules })
],
providers: [
]
})
export class AppModule {
}
当我加载我的组件(我的意思是根模块)时,默认路由总是去子模块而不是根模块,即它打印“我是孩子”,正如我所期望的“我是父母”,应该加载子路由只有当我加载它时,如何将它路由到根(父)模块而不是子模块的默认路由?
【问题讨论】:
-
您是否考虑过添加子路径,该路径将在父路由中延迟加载,例如
{ path: child, loadChildren:'path to child module'}?你可以阅读更多关于它here -
@Madhu Ranjan,问题是子(默认)路由在默认情况下被加载,即使没有配置我想避免的配置
-
子模块中配置子路由了吗?如果是,那么当您在应用程序模块中导入子模块时,将添加子路由..
-
现在知道了,我想我在父子节点中不能有默认路由,可以通过重构代码来解决,非常感谢
-
@sudharsantk 你能提供你的解决方案吗?我遇到了完全相同的情况
标签: angular angular-route-segment