2016-05-06 7 views
0

私はAngular2アプリケーションで作業しています。子ルートが親ルートから拡張されていないことに気付きました。これは設計によるものですか?例えばAngular2ネストされたルーティングのURLが正しくありません

、私はそうのように構成されたルートを持つ親ルータがある場合:

// In top-level component 

router.config([ 
    new AsyncRoute({ 
     path: '/designer/:id', 
     name: 'Designer', 
     loader:() => 
      System.import('app/components/design.component') 
       .then(c => c['DesignComponent']) 
    }), 
    new AsyncRoute({ 
     path: '/planner/:id', 
     name: 'Planner', 
     loader:() => 
      System.import('app/components/plan.component') 
       .then(c => c['PlanComponent']) 
    }) 
]); 

と子ルータなどのように、これらのコンポーネントのいずれかで定義されたルートを:

// In child component, design.component for example 

router.config([ 
    new AsyncRoute({ 
     path: '/model', 
     name: 'Model', 
     loader:() => 
      System.import('app/design/components/model.component') 
       .then(c => c['ModelComponent']) 
    }) 
]); 

ときトップたとえば、http://localhost:5000/designer/10のレベルのページが読み込まれますが、子ルートに移動すると、URLはhttp://localhost:5000/designer/10/modelの代わりにhttp://localhost:5000/modelになります。

http://localhost:5000/designer/10/model 

実際:

http://localhost:5000/model 

答えて

-1

ルートが子ルートがある場合は、そのパスは/...

new AsyncRoute({ 
     path: '/designer/:id/...', 
     name: 'Designer', 
     loader:() => 
      System.import('app/components/design.component') 
       .then(c => c['DesignComponent']) 

で終了する必要があります。これはまたによって引き起こされるかもしれない期待

非同期ルート。完全なURLは、子コンポーネントがロードされた後にのみ解決されます。これは新しいルータでAngular2 rc.0で変更されました

+0

私はこれを試してみましたが動作していません。実際、それはまったくナビゲートしません。 '[routeLink]'を使わずに親ルータが設定されていることは重要ですか?また、RC.0では何が変更されていますか?最後に 'router.navigate'を使って'/... 'がついたルートにナビゲートするにはどうしたらいいですか? –

+0

再生を可能にするPlunkerを作成できますか? –

+0

Beta 17現在 –

関連する問題