2016-07-03 23 views
3

ルータv2からv3への移行中(deja vuのような感じ)。ルーティング設定は、コンポーネントから再度切り離されます。それは私がかなり賢明だと思った論理を打ち消す。彼らは私に頭痛を与えるRouterConfigchildrenのプロパティを導入しました。ルートはDelegateXComponentsの各文書を解決し、製造を担当した以下@RoutesデコレータAngular2ルーティングv3.0.0、深くネストされたルート

@Routes([{path: '/club/:id', component: DelegateClubComponent}]) 
export class MainApp {...} 

@Routes([{path: 'user/:id', component: DelegateUserComponent}]) 
export class DelegateClubComponent {...} 

@Routes([{path: 'tasklist/:id', component: DelegateTaskListComponent}]) 
export class DelegateUserComponent {...} 

@Routes([{path: 'edit', component: EditTaskListComponent}]) 
export class DelegateTaskListComponent {...} 

と、次のコンポーネント上に広げた。この

/club/123/member/98/tasklist/921/edit 

と同様多くのルートを使用してアプリケーションを想定それはServiceで利用可能であり、他のコンポーネントが注入される。さらに、DelegateXComponentsのすべてが、彼らが担当していたドキュメントのいくつかのデータを含む小さなテンプレートをレンダリングしました。

これはルータv3でどのように行われますか?ツリー全体をRouterConfigの5レベルのchildrenでネストしてマップするのは意味がありません。一方、RouterConfigの作業はまったく別ですか?

export const clubRoute: RouterConfig = [ 
    { path: 'club/:id', component: DelegateClubComponent }]; 

export const userRoute: RouterConfig = [ 
    { path: 'user/:id', component: DelegateUserComponent }]; 

は限り舞台裏で起こって魔法が存在しないとして、どのようにルータがuserRouteclubRouteの子ルートとして考慮されるべきであることを知っているだろう。

混乱挨拶

答えて

2

あなたはコンポーネントと同じファイル内のconfigsを定義し、ちょうどルータに渡す前に完全なツリーにそれらを組み合わせることができます。

import {childRoutes} from './child.component' 

export const clubRoute: RouterConfig = [ 
    { path: 'club/:id', component: DelegateClubComponent, children: childRoutes }]; 
+0

Thx。合理的な解決策のようだ。 v2のコンポーネント関連ルーティングが放棄された理由を知っていますか? – Matt

+0

アクティブにすることができるかどうかを判断するために、コンポーネントをロードする必要があった遅延ロードで問題が発生しました(これらの行に沿ったもの - 正確にはわかりません)。 –

関連する問題