Angular4路由器,延迟加载模块子路由,命名路由器出口
Angular4 router, Lazy loaded module child routes, named router outlets
我有一个奇怪的问题。我需要在延迟加载模块的根路由元素上设置辅助路由器出口,这些模块在应用程序路由模块中设置了 URL 基础。解释似乎有点难,但我将尝试解释这一点。
我的应用路由有这个
{
path: 'shop',
loadChildren: 'app/shop/shop.module#ShopModule',
canActivate: [AuthGuardService]
},
这意味着所有商店路线都应以
开头
/店铺
现在,在商店模块中,我需要让主要内容出现在名为 "ShopContent" 的辅助路由器出口中。为此,我设置了 2 条测试路线,其中一条适合我。
店铺刀具路线如下
const routes: Routes = [
{
path: '',
component: ShopComponent,
children: [
{
path: 'overview',
component: ShopMarketingComponent,
outlet: 'ShopContent'
},
{
path: 'products',
component: ShopMarketingComponent,
outlet: 'ShopContent'
}
]
},
{
path: 'test',
component: ShopComponent,
children: [
{
path: 'overview',
component: ShopMarketingComponent,
outlet: 'ShopContent'
},
{
path: 'products',
component: ShopMarketingComponent,
outlet: 'ShopContent'
}
]
}
];
如您所见,空的 '' 路由和 'test' 路由都有相同的子路由。我也有路由器插座设置。
<router-outlet name="ShopContent"></router-outlet>
我的官好像有什么问题?
我需要让“/shop/overview”路由在我的辅助出口中打开 ShopMarketingComponent,但是这个 routerLink 给我一个未定义的路由错误
[routerLink]="['/shop', {outlets: {ShopContent: ['overview']}}]"
然而这个完全没问题
[routerLink]="['/shop/test', {outlets: {ShopContent: ['overview']}}]"
我的问题是,为什么我必须将额外的 URL 段 ( '/test' ) 放入混合中,以便我可以有辅助路由器插座?我到底做错了什么?
是否所有的懒加载路由都显示在副出口中?如果是这样,您可以尝试将插座添加到延迟加载的路由配置中:
{
path: 'management',
loadChildren: 'app/management-tool/managementtool.module#ManagementToolModule',
canActivate: [AuthGuardService],
outlet: 'managementtoolcontent'
},
我有一个奇怪的问题。我需要在延迟加载模块的根路由元素上设置辅助路由器出口,这些模块在应用程序路由模块中设置了 URL 基础。解释似乎有点难,但我将尝试解释这一点。
我的应用路由有这个
{
path: 'shop',
loadChildren: 'app/shop/shop.module#ShopModule',
canActivate: [AuthGuardService]
},
这意味着所有商店路线都应以
开头/店铺
现在,在商店模块中,我需要让主要内容出现在名为 "ShopContent" 的辅助路由器出口中。为此,我设置了 2 条测试路线,其中一条适合我。
店铺刀具路线如下
const routes: Routes = [
{
path: '',
component: ShopComponent,
children: [
{
path: 'overview',
component: ShopMarketingComponent,
outlet: 'ShopContent'
},
{
path: 'products',
component: ShopMarketingComponent,
outlet: 'ShopContent'
}
]
},
{
path: 'test',
component: ShopComponent,
children: [
{
path: 'overview',
component: ShopMarketingComponent,
outlet: 'ShopContent'
},
{
path: 'products',
component: ShopMarketingComponent,
outlet: 'ShopContent'
}
]
}
];
如您所见,空的 '' 路由和 'test' 路由都有相同的子路由。我也有路由器插座设置。
<router-outlet name="ShopContent"></router-outlet>
我的官好像有什么问题?
我需要让“/shop/overview”路由在我的辅助出口中打开 ShopMarketingComponent,但是这个 routerLink 给我一个未定义的路由错误
[routerLink]="['/shop', {outlets: {ShopContent: ['overview']}}]"
然而这个完全没问题
[routerLink]="['/shop/test', {outlets: {ShopContent: ['overview']}}]"
我的问题是,为什么我必须将额外的 URL 段 ( '/test' ) 放入混合中,以便我可以有辅助路由器插座?我到底做错了什么?
是否所有的懒加载路由都显示在副出口中?如果是这样,您可以尝试将插座添加到延迟加载的路由配置中:
{
path: 'management',
loadChildren: 'app/management-tool/managementtool.module#ManagementToolModule',
canActivate: [AuthGuardService],
outlet: 'managementtoolcontent'
},