Angular 2如何在路由时有选择地保存状态

时间:2017-06-08 14:34:53

标签: angular angular-routing

我正在创建一个允许用户导航到特定记录的搜索页面,当他们返回搜索页面时,仍然会填充他们的搜索条件。我尝试使用此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

1 个答案:

答案 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)