//編集2:角度4では、これが修正されたようです。現在のところ、名前のないアウトレットの名前付きアウトレットを定義することができます。コンポーネントをロードするために名前付きコンセントが見つかりません
// EDIT: @Michelangeloが指摘しているように、これは角型ルータに関連する「設計上の選択」/バグのようです。回避策として、現在のユーザーとuser-listに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'
"[..]変更が必要です。"回避策は、私の既存のコードを壊す可能性があります。あなたのアプローチを共有してくれてありがとう! – Lelsoos