2016-08-31 9 views
15

私は/Questions?id=1234&pageid=0のようなクエリパラメータでURLを設定する必要があります。私はrouter.Navigate['/Questions?id=1234&pageid=0']を介してそれをやろうとしましたが、運はありません。urlにクエリパラメータを設定する方法Angular2?

ナビゲーションバーの後に/Questions%3Fid%3D1234%26pageid%3D0のように表示されます。

私もrouterLink="/Questions?id=1234&pageid=0"に設定してみましたが、同じ結果になりました。

解決方法をご提案ください。rc52の角2を使用しています。

+1

チェック角度のドキュメントを更新する必要があります。https://angular.io/docs/ts/latest/guide/router.html#! #query-parameters – ranakrunal9

答えて

10

私はルータリンクを与えることによって、一つの解決策を見つけて、クエリパラメータを分離、以下のように:

<a [routerLink]="['/Questions']" [queryParams]="{id:1234,page:1}"></a>

これは私のために正常に動作しています。

+1

乾杯!これほど長い間探しています。 [Docs](https://angular.io/docs/ts/latest/guide/router.html#!#query-parameters)が間違っているようですか?しかし、ofc - cheatsheetに隠された正しい方法(https://angular.io/docs/ts/latest/guide/cheatsheet.html)! – Leo

5

ルータ内の項目が配列をコマンドとしてあなたがそれらを渡すことができます。

[routerLink]="['/Questions'] [queryParams]="{id:1234, pageid:0}} ]" 

も参照してくださいhttps://angular.io/docs/ts/latest/guide/router.html#!#query-parameters

+1

私はそれを使用していますが、**/Questions; queryParams =%5Bobject%20Object%5D **のようなURLを私に与えています。 –

+0

ルートルータの場合、オプションのパラメータがクエリ文字列に表示されます。子ルータの場合は、マトリックスパラメータ(あなたが示したもの)として追加されます。 –

+0

そうです、それは子供のルートです。ですから、この行列パラメータではなく子ルートのクエリパラメータを表示するソリューションはありますか? –

16

あなたは、ルータ内の項目として渡すことができますが、コマンドのアレイの外側:/Questions?id=1234&pageid=0

をそれとも、programmaticalyそれを使用することができます:

[routerLink]="["/Questions"], {queryParams: {id:1234, pageid:0}}"

が、これはあなたが望むものを生成

this.router.navigate(['/Questions'], { queryParams: {id:1234, pageid:0} })

ルータがのインスタンスであるさんRouter

0

あなたは、クエリのparamsをルーティングするためのあなたのrouter.navigate

this.router.navigate(['/Quetions', {id: 1234, pageid: 0}]); 
関連する問題