2017-11-21 7 views
0

これは私の現在のルータです:動的な角度ルータパス

const routes: Routes = [ 
    { path: '', component: HomeComponent }, 
    { path: 'filter', component: FiltersPageComponent}, 
    { path: 'filter/:continent', component: FiltersPageComponent}, 
    { path: '**', canActivate: [RouteLoader], component: ErrorComponent}, 
]; 

私は、ユーザーが複数の宛先を検索するときに作成された動的URLを持っています。

URLの

例:localhostを:4200 /フィルター/アフリカ/ボツワナ/ヨーロッパ/スペイン/アジア/中国

私は以下のような複数のパスをせずにこのURLを受け入れる1つのパスを作成することはできますか?

{ path: 'filter/:test/:test2/:test3/:test4/:test5/:test6', component: FiltersPageComponent} 
+0

このようなURLで達成したいことがわからない –

+0

ユーザーは複数の宛先を検索できます。私はこれらの宛先を別のページに渡すためにそれらをURLに入れて、他のページでそれらと一緒にリクエストを行うことができます。しかし、私はこの質問をして、動的パスを作成することができるかどうかを確認しました。ユーザーが検索できる宛先の量に制限を設ける必要はありません。 – Djkobus

答えて

0

私が使用して終了ソリューションは、このでした:私はこの方法を使用するときに考えることができる唯一の問題は、ユーザーがランダムに/フィルタの後に何かを置くことができるということです

{ path: 'filter', component: FiltersPageComponent, 
    children: [ 
    { path: '**', component: FiltersPageComponent} 
    ] 
}, 

urlであり、それでもfiltersPageComponentにリダイレクトされます。

0

いいえ、できません。あなたのルートに重複するパラメタを持つことはできません。そうした場合、URLに重複している最後のデータしか取得できません。あなたのケースでは、それはアジアと中国だけを返します

0

角度のparamMapこれを有効にする必要があります。

urlパラメータを購読して、それぞれのルートでそれぞれのルートで実行することができます。いくつかの追加のリソースです。ここ

this.route.paramMap.subscribe(params => { 
    if (params.get('username'))) { 
     // Route to particular path... 
     // Or do something else... 
    } 
}); 

:それは不可能(とも間違っている)であるpathのparamsで

0

、しかし、あなたがすべき以下の例を参照してください。これはqueryのようなパラメータでこれを行うことができます:

localhost:4200/yourroute?filter=africa&filter=botswana&filter=europe&filter=spain 

Query params and fragments