Angular 4内のさまざまなタイプの経路に関する複数のスレッド/質問を検索した後、queryParamsをAngular 4経路に渡すことに関連する問題を解決できません。角4 - 経路照合パラメータが経路一致失敗を引き起こす
いずれかのURLにテンプレート[queryParams] = {X 'Y'}を介し
http://localhost/search;x=y
通過
<a [routerLink]="/search" [queryParams]="{x: 'y'}">Navigate</a>
またはコンポーネントクラスの
this._router.navigate(['/search'], { queryParams: {x: 'y'} });
をその結果、ルータは一致エラーを送出します:
Error: Cannot match any routes. URL Segment: 'search%3Fparam1%3Dtest1%26param2%3Dtest2'
enableTracingをtrueに設定すると、ナビゲーションで疑わしい文字がエンコードされていることがわかります。これは、一致しない可能性が高いためです。
私は、queryParamsを含むurlを処理し、api呼び出しのためにそれらを解析する必要があります。したがって、必須パラメータまたはオプションのパラメータよりもクエリのparamルートを使用する必要があります。
誰もが似たような問題を抱えていましたか?その場合は、問題のルート(エーム)原因をエンコードしていますか?疑問符ではなく、セミコロンで
http://localhost/search?x=y
:
定義にあなたのルートのパスを表示できますか? '{path: 'search /:x'、component:MyComponent}'でなければなりません。そうでない場合は、ここにあなたのエラーです! – trichetriche
QueryParamsはルート定義で**定義されていてはなりません**。もし彼らが...しているなら、それは問題です*。 :-) – DeborahK