ルータから新しいAngular 2ルータを使用するようにアップグレードしましたが、一部の動作が変更されました。コンポーネントを更新しない同じルートに移動しますか?
問題が発生しているページは検索ページです。 HashLocationStrategy
を使用してすべての検索語句をURLに入れることにしました。ルートは次のようになります。
const routes: RouterConfig = [
{ path: '', component: HomeComponent },
{ path: 'search/:term/:cat/:page/:sort/:size/:more', component: HomeComponent },
{ path: 'search/:term/:cat/:page/:sort/:size', component: HomeComponent },
{ path: 'search/:term/:cat/:page/:sort', component: HomeComponent },
{ path: 'search/:term/:cat/:page', component: HomeComponent },
{ path: 'search/:term/:cat', component: HomeComponent },
{ path: 'search/:term', component: HomeComponent },
{ path: 'details/:accountNumber', component: DetailsComponent }
];
は、私は、クエリ文字列のアプローチは、これらすべてのオプションが、他の人が決定したプロジェクトの要件のためのより良いフィットかもしれない知っている...
をとにかく、私はその後、this.router.navigate(['/search/Hello']);
を使用してlocalhost/#/search/Hello
に移動した場合ルータは正常に動作し、すべてが素晴らしいです。このページでthis.router.navigate(['/search/World']);
を試してみると、ブラウザのアドレスバーのURLはそれに応じて更新されますが、コンポーネントはまったく変更されません。
以前はrouterCanReuse
を使用して検索コンポーネントを再利用したいと表示し、routerOnReuse
はナビゲーションが発生したときに検索を再実行します。私は@angular/router
にこれらと同等のものは見当たりません。新しいURLパラメータで現在のルートを再ロードするにはどうすればよいですか?
私はAngular 2のバージョン2.0.0-rc.3と@ angular/routerの3.0.0-alpha.8を実行しています。
を私はapp.component.tsページまたは実際のページにこのコードを置くことができる場所を教えてproblem.can同じ直面しています(これはリロードされていません)。 ** this.service.get(term).then(result => {console.log(result);}); **というものがもう1つあります。あなたは簡単に説明できますか? – pushp