2016-08-29 17 views
1

私はhttpエラーコードでRC.4で新しいルータに取り組んでいます。私はURLを通じてパラメータを送信しようとしているが、私は「文字の問題」を持っている...ここで Angular2 - ルータがparam(RC.4)でナビゲート

は私の呼び出しです: this._router.navigate(['/error', { errorCode: '401' }]);

そして、これが含まれているURL、あります「;」 「?」の代わりに:私が欲しいものhttp://localhost:3000/error;errorCode=401

http://localhost:3000/error?errorCode=401

私はこのURLを読んでいたときに、それはこれだけで動作するので、 "?" :

this._router.routerState.queryParams.subscribe(params => { 
     let errorCode = params['errorCode']; 
     ... 

(オプション - app.routes.ts):

{ 
    path: 'error', 
    component: ErrorComponent 
}, 

私は、インターネット上で検索が、どのように私は変更することができ、それについて何も見つかりませんでした ";"または、どうすればerror;errorCode=401を読むことができますか?

答えて

2

ルートルートに追加すると、パラメータがクエリパラメータとして追加されます(?を使用)。子ルートでは、行列パラメータとして追加されます(;を使用)。

したがって、クエリパラメータとして追加する場合は、それらをルートルートに追加する必要があります。

+0

お返事ありがとうございました! angular2の行列パラメータを読み取る方法はありますか? – lBrowz

+0

これらは(実際には)クエリパラメータと同じように機能しますが、URLの表現は適用されるルートによって異なります。 –

+0

メインルートに追加するとどういう意味ですか? RouterModule.forRoot()でサブモジュールにルートを登録することを意味しますか? –

0
let queryParams = { 
    status: 1, 
    string: 'abc', 
}; 
this._router.navigate(['/path'], { queryParams: queryParams }); 
+0

このコードスニペットをありがとうございました。適切な説明は、なぜ*これが問題の良い解決策であるかを示すことによってその教育上の価値を大幅に改善し(// meta.stackexchange.com/q/114762)、将来の同様の、しかし、同一ではない質問。説明を追加するためにあなたの答えを[編集]し、どんな制限と前提が適用されるかを示してください。 –

関連する問題