【发布时间】:2017-07-29 22:41:45
【问题描述】:
我的路由有问题,需要一些帮助。最初,我将所有路由都放在一个 app.routing.ts 文件中。我目前正在将我的路线重构为一个文件,以伴随其相应的功能模块被延迟加载。一个延迟加载的功能模块使用辅助辅助路由器插座。这是我的代码....
原文:app.routing.ts
const appRoutes: Routes = [
{
path: 'settings',
component: SettingsComponent,
children: [
{
path: '',
redirectTo: '/settings/(settings:user)',
pathMatch: 'full'
},
{
path: 'user',
component: SettingsUserComponent,
outlet: 'settings'
}
]
}
]
新:app.routing.ts
const appRoutes: Routes = [
...
{
path: 'settings',
loadChildren: '@app/settings/settings.module#SettingsModule'
}
...
]
settings.routing.ts
export const SETTINGS_ROUTES = [
{
path: '',
redirectTo: '/settings/(settings:user)',
pathMatch: 'full'
},
{
path: 'user',
component: SettingsUserComponent,
outlet: 'settings'
}
]
所以问题是最初我的settings 路径会加载包含settings 插座的SettingsComponent。然后,空子路径将重定向到 /settings/(settings:user) 并在 settings 辅助路由器出口中加载 SettingsUserComponent。
现在我已经重构,没有 SettingsComponent 被加载,所以会出现错误,指出没有 settings 出口。
从文档中,它指出我无法将component 属性与loadChildren 一起使用。我也不能在SETTINGS_ROUTES 中使用component 和redirectTo。我尝试将我的设置路由包装在另一个空路径中,如下所示,但似乎没有解决问题。
settings.routing.ts
export const SETTINGS_ROUTES = [
{
path: '',
component: 'SettingsComponent',
children: [
{
path: '',
redirectTo: '/settings/(settings:user)',
pathMatch: 'full'
},
{
path: 'user',
component: SettingsUserComponent,
outlet: 'settings'
}
]
}
]
如何加载包含子路由的settings 出口的SettingsComponent。非常感谢任何建议。
谢谢
更新
https://github.com/angular/angular/issues/10981#issuecomment-301787482
自 2016 年 8 月以来出现了一个问题。有些人已经能够使用 Angular4 创建解决方法。我已经尝试过了,但似乎无法与 Angular2 一起正常工作。
如果有人对 Angular2 有成功的解决方法,如果你能发布它们,我将不胜感激。
【问题讨论】: