2016-05-02 3 views
1

サブコンポーネントにデフォルトルートを設定し(useAsDefault: trueで設定)、パラメータを自動的に渡す必要があります。私はそれを行う方法をドキュメントのどこにも見つけることができません。 私は次のルートを持つ親コンポーネントがあります。Angular Component Routerでパラメータを使用してデフォルト経路を定義する方法は?

$routeConfig = [ 
    { path: '/employees/...', component: 'employeesComponent', name: 'Employees'} 
] 

と子コンポーネントとを:もちろん

$routeConfig = [ 
    { path: '/:group/:filter', component: 'employeeListComponent', name: 'Group', useAsDefault: true} 
    { path: '/details/:employeeId/...', component: 'profileComponent', name: 'EmployeeProfile'} 
] 

これはで失敗します。 Route generator for 'group' was not included in parameters passed. 私が合格する方法を見つけ出すことができませんでしたいくつかのデフォルトパラメータを最初のルートに追加します。私はparamsのない別のルートを作成し、それをデフォルトとして使用することでそれを実行しました。

{ path: '/all', component: 'employeeListComponent', name: 'All', useAsDefault: true} 

もちろん、理想的ではありません。今のところ、私はparamsなしでルートを使用し、そしていくつかのデフォルトのパラメータですぐにリダイレクトするより良いものを思いついたわけではありません。もっと良い方法はありませんか?

+0

私はちょうど私がしたいことは、オプションのルートparamです、そしてそこだとことが判明し、それのための未解決の問題:https://github.com/ angle/angular/issues/3525 –

答えて

0

私が知る限り、これはサポートされていません。あなたは、パラメータとないルートを持っているし、その後GroupDefaultコンポーネントにちょうどGroup

$routeConfig = [ 
    { path: '/group', component: 'employeeListComponentDefault', name: 'GroupDefault', useAsDefault: true} 

    { path: '/:group/:filter', component: 'employeeListComponent', name: 'Group'}, 
    { path: '/details/:employeeId/...', component: 'profileComponent', name: 'EmployeeProfile'} 
] 

にナビゲートすることができますので、私は私のを解決し

+0

あなたは '/ group''と言ってみたいと思うと思います。 –

+0

そうですね、私は両方の部分がパラメータであることを忘れていました。 –

+0

ああ、イディオムはoptionamパラメータを使うことです。 ''/''でルートを定義するには、' '/:group /:filter' 'にリダイレクトすることができます。それは特に醜いまたは不適格ではない、私はちょうどより洗練された解決を望んでいた。 –

1

も参照してください。私はparamsのないデフォルトルートを追加しました。私はただちにからリダイレクトします。コントローラで

public $routeConfig = [ 
    { path: '/', component: 'employeeListComponent', name: 'GroupRedirect', useAsDefault: true},  
    { path: '/:group/:filter', component: 'employeeListComponent', name: 'Group'} 
    { path: '/details/:employeeId/...', component: 'profileComponent', name: 'EmployeeProfile'}, 
] 

、その後:

public $routerOnReuse(route) { 
    if (!route.params.group) { 
    this.$router.navigate(['Group', { group: 'status', filter: 'active' }]); 
    } 
} 
関連する問題