1

我有一个具有路由'/Item'的父组件项。

我有两个子组件名称Catalog组件和AddSize组件。

默认情况下,目录组件将使用 route 加载'/item?q=catalogue'。然后用户选择产品,然后路由将更改为'/item?q=add_size'并加载 AddSize 组件。

现在,如果浏览器单击浏览器后退按钮,则查询参数将从 更改'/item?q=add_size''/item?q=catalogue'

'/item?q=add_size'当用户单击路由浏览器警报中的后退按钮不起作用时,我遇到了问题。

保护服务和主机侦听器在这种情况下没有帮助,因为我在同一条路线上,并期望浏览器警报仅用于查询参数更改。

我们有任何替代解决方案吗?

4

1 回答 1

1

您需要为您的路线创建订阅。

this._route.queryParams
    .subscribe(
        params => {
            this.q = params['q'];
            if (q == 'add_size') 
            {
                do something
            }   
            else if (q == params['catalogue']) 
            {
                do something else
            }       
            });

把它放在你的 OnInit() 代码中。

于 2018-10-31T12:44:36.823 回答