【问题标题】:Angular 2 How to selectively save state while routingAngular 2 如何在路由时有选择地保存状态
【发布时间】:2017-11-10 08:11:17
【问题描述】:

我正在创建一个允许用户导航到特定记录的搜索页面,当他们返回搜索页面时,他们的搜索条件仍然被填充。我试过使用这个https://www.softwarearchitekt.at/post/2016/12/02/sticky-routes-in-angular-2-3-with-routereusestrategy.aspx,效果很好。

问题是,我导航到的其他页面具有基于请求参数的过滤器,它们也保存以前的状态,而不是新状态,例如,假设我导航到 /page?type=foo 并且它显示 10 个结果,然后我导航到 /page?type=bar,它应该显示 5 个结果,但仍然显示来自 foo 的 10 个结果...即:它还记得它的先前状态。

所以我的问题是,如何有选择地控制何时保存状态。理想情况下,我只想在来自详细信息页面时才在搜索屏幕上保存状态,而不是在从主页导航到搜索时。

谢谢

-托德

【问题讨论】:

  • 你可以在路由链接中传递一个参数
  • 您能详细说明一下吗?我将如何处理传递给 routeLink 的参数,我该如何传递它?抱歉,我不是很清楚

标签: angular angular-routing


【解决方案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)

【讨论】:

  • 谢谢,我试试看……另一个问题,什么是'pathScreen'?
  • 这是一个示例路径,你把你的路径放到组件搜索屏幕
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-10-28
  • 2018-07-13
  • 2013-04-05
  • 2017-12-03
  • 2013-09-15
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多