保持页面状态并产生角度5,以便与浏览器后退按钮一起使用

时间:2018-06-02 16:45:18

标签: angular

我有很多与搜索相关的网页。如果单击broswer后退按钮,我想返回到同一个上一页。数据来自django Rest API。

现在我的解决方案是保存最后一个被调用的api并将其保存在会话存储中,但是我为每个需要这样的新组件编写了很多会话变量。

是否有一种可管理的方式处理此类请求?

1 个答案:

答案 0 :(得分:0)

我认为你要找的是queryParams,所以如果你根据查询参数构建你的组件,那么这不仅适用于浏览器的后退按钮,而且还可以让你自由地共享URL作为链接。

<击> 阅读ngOnInit()下的查询参数并构建模型。

this._route
    .queryParams
    .subscribe((params) => {
        // based on the received params -> render/request

     })

// here _route is an ActivateRoute instance

<击>

修改

我认为您必须收听路由器更改,很可能在导航更改时无法重新初始化该组件。要解决此问题,您可以使用ngOnInit()

中的内容
this._router.events
    .filter(event => event instanceof NavigationEnd)
    .subscribe(() => {
         console.log(this._activatedRoute.snapshot.queryParams);
         // get the queryParams here and then based on some conditions, -> render/request, etc
     })

// here _router is a Router instance and _activatedRoute is an ActivatedRoute instance