我正在创建一个允许用户导航到特定记录的搜索页面,当他们返回搜索页面时,仍然会填充他们的搜索条件。我尝试使用此https://www.softwarearchitekt.at/post/2016/12/02/sticky-routes-in-angular-2-3-with-routereusestrategy.aspx,效果很好。
问题是,我导航到的其他页面有基于请求参数的过滤器,它们也保存了以前的状态,而不是新的状态,例如,我导航到/ page?type = foo and it显示10个结果,然后我导航到/ page?type = bar,它应该显示5个结果,但仍然显示foo的10个结果...即:它还记住它的先前状态。
所以我的问题是,如何有选择地控制何时保存状态。理想情况下,我希望仅在来自详细信息页面时才在搜索屏幕上保存状态,而不是在从主页面导航到搜索时保存状态。
由于
-Todd
答案 0 :(得分:1)
从详细页面和主页进行时
this.route.params.subscribe(params => {
let detailPage = params[ 'detailPage' ];
if (detailPage) {
// do something
}
});
和详细的组件
let link = ['pathScreen',{ detailPage : true }];
this.router.navigate(link)
并在主页
let link = ['pathScreen'];
this.router.navigate(link)