//编辑2:从Angular 4开始,似乎已经修复/修改了。目前,我可以定义名为outles' inside'一个未命名的出口
//编辑: 正如@Michelangelo指出的那样,这似乎是与Angular Router相关的设计选择&bug。作为一种解决方法,我动态地将user-edit.component注入到当前用户的用户列表中 有关详细信息,请参阅https://angular.io/docs/ts/latest/cookbook/dynamic-component-loader.html。
我有以下设置:
{
path: 'admin',
canActivate: [ AuthGuard, PermissionGuard ],
children: [
{
path: '',
component: UserListComponent,
resolve: {
users: UsersResolver
}
},
{
path: ':id',
component: UserEditComponent,
outlet: 'admin'
}
]
}
插座看起来像:
<router-outlet name="admin"></router-outlet>
我尝试用以下方式导航:
this.router.navigate(['/admin', {outlets: {'admin': [user.id]}}]);
如果我尝试在不指定插座的情况下导航到该路线,则可以正常工作。但是一旦我尝试使用命名的路由器插座,它就会中断。
Error: Cannot find the outlet admin to load 'UserEditComponent'
答案 0 :(得分:0)
好的,对你的问题不是一个真正的答案,但我遇到了同样的问题 由于这个问题,我最终没有去指定出口。如果你在网上搜索,你不是唯一有这个问题的人。
看起来Angular 2的路由仍然需要修复以前在AngularJS 1.x中运行良好的基本内容
我所做的是根据当前路径显示和隐藏应用程序中的元素,请参阅我的答案:https://stackoverflow.com/a/41684866/4194436