Angular 5 Child 路由空路径覆盖根空路径?
Angular 5 Child routing empty path overrides root empty path?
我尝试了以下设置。
根路由:
const routes: Routes = [
{path: 'home', loadChildren: 'app/home/home.module#HomeModule'},
{path: 'note', loadChildren: 'app/note/note.module#NoteModule'},
...
{path: '', redirectTo: 'home', pathMatch: 'full'},
{path: '**', redirectTo: 'home', pathMatch: 'full'}
];
export const Routing: ModuleWithProviders = RouterModule.forRoot(routes);
一个child的路由:
const routes: Routes = [
{path: '', component: NoteContainerComponent},
...
];
export const NoteRouting: ModuleWithProviders = RouterModule.forChild(routes);
所以如果我导航到 localhost:4200 我希望被重定向到 localhost:4200/home 但是没有 url 重定向发生但是注释路由被加载。如果我做类似 localhost:4200/note 的事情,空笔记路由不应该只匹配吗? child 路由中的所有路由仅应在加载 child 的 parent 时应用。
在child条路线上不能有空路径吗?
所以我终于找到了问题所在,我在我的根模块中导入了我想要延迟加载的模块。这导致了这个问题,因为 RouterModule.forChild 是按原样应用的 .forRoot
我尝试了以下设置。
根路由:
const routes: Routes = [
{path: 'home', loadChildren: 'app/home/home.module#HomeModule'},
{path: 'note', loadChildren: 'app/note/note.module#NoteModule'},
...
{path: '', redirectTo: 'home', pathMatch: 'full'},
{path: '**', redirectTo: 'home', pathMatch: 'full'}
];
export const Routing: ModuleWithProviders = RouterModule.forRoot(routes);
一个child的路由:
const routes: Routes = [
{path: '', component: NoteContainerComponent},
...
];
export const NoteRouting: ModuleWithProviders = RouterModule.forChild(routes);
所以如果我导航到 localhost:4200 我希望被重定向到 localhost:4200/home 但是没有 url 重定向发生但是注释路由被加载。如果我做类似 localhost:4200/note 的事情,空笔记路由不应该只匹配吗? child 路由中的所有路由仅应在加载 child 的 parent 时应用。
在child条路线上不能有空路径吗?
所以我终于找到了问题所在,我在我的根模块中导入了我想要延迟加载的模块。这导致了这个问题,因为 RouterModule.forChild 是按原样应用的 .forRoot