我已经升级到使用新的Angular 2路由,路由已弃用,一些行为已经改变.
我遇到问题的页面是搜索页.我们 Select 将所有搜索词放入使用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
,那么路由工作正常,一切都很好.而在该页面上,如果我try 使用this.router.navigate(['/search/World']);
,那么浏览器地址栏中的URL将相应地更新,但组件根本不会更改.
之前,我可以使用routerCanReuse
来表示我确实希望重用搜索组件,而routerOnReuse
将在导航发生时重新运行搜索.我看不到与@angular/router
中的这些相同.如何使用新的URL参数重新加载当前路由?
我运行的是2.0.0-rc版本.3表示Angular 2和3.0.0-alpha.8个Angular /路由.