我的路由配置如下:
export const routes = [
{ path: '', component: HomeComponent },
{ path: 'search-results/:searchName', component: SearchResultsComponent },
{ path: 'success', component: SuccessComponent },
];
我从家到这样的搜索结果:
this.routerExtensions.navigate(['search-results', this.searchName.trim()]);
然后,从搜索结果中,我转到成功页面,然后从那里导航到搜索结果,单击“后退”按钮:
<ActionBar title="Success" flat="true">
<NavigationButton text="Back" android.systemIcon="ic_menu_back"></NavigationButton>
</ActionBar>
我在这里遇到错误:
错误错误:未捕获(承诺):错误:无法匹配任何路由。 网址段:“搜索结果”
似乎返回不包含参数。无论如何,我正在添加它想要的路由,现在路由器看起来像这样:
export const routes = [
{ path: '', component: HomeComponent },
{ path: 'search-results', component: SearchResultsComponent },
{ path: 'search-results/:searchName', component: SearchResultsComponent },
{ path: 'success', component: SuccessComponent },
];
现在我得到一个错误:
错误错误:未捕获(承诺):错误:当前在页面上 导航-应该重新连接组件,而不要激活它。
因此,基本上,我认为问题在于返回具有参数的视图不起作用,因为反向导航不会传递参数。添加没有参数的路由无济于事,因为本机脚本需要实例化它,但是后视图将被缓存,而不是再次实例化。
从路由中删除参数并将其传递给服务可解决此问题,但我认为它不应该那样工作。