找不到加载组件

时间:2017-02-08 13:24:05

标签: angular angular2-routing

//编辑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'

1 个答案:

答案 0 :(得分:0)

好的,对你的问题不是一个真正的答案,但我遇到了同样的问题 由于这个问题,我最终没有去指定出口。如果你在网上搜索,你不是唯一有这个问题的人。

看起来Angular 2的路由仍然需要修复以前在AngularJS 1.x中运行良好的基本内容

我所做的是根据当前路径显示和隐藏应用程序中的元素,请参阅我的答案:https://stackoverflow.com/a/41684866/4194436