加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

Angular2路由器保持查询字符串

发布时间:2020-12-17 08:00:47 所属栏目:安全 来源:网络整理
导读:我写了一个使用路由器的Angular2(v2.0.1)应用程序。该网站加载了几个查询字符串参数,因此完整的URL最初如下所示: https://my.application.com/?param1=val1param2=val2param3=val3 在我的路由配置中,我有一个重定向空路由的条目: const appRoutes: Route
我写了一个使用路由器的Angular2(v2.0.1)应用程序。该网站加载了几个查询字符串参数,因此完整的URL最初如下所示:
https://my.application.com/?param1=val1&param2=val2&param3=val3

在我的路由配置中,我有一个重定向空路由的条目:

const appRoutes: Routes = [
    {
        path: '',redirectTo: '/comp1',pathMatch: 'full'
    },{
        path: 'comp1',component: FirstComponent
    },{
        path: 'comp2',component: SecondComponent
    }
];

我的问题是,在应用程序被引导后,URL不再包含查询参数,而是看起来像这样:

https://my.application.com/comp1

有没有什么办法可以配置路由器,以便在导航时保留初始查询字符串?

谢谢
卢卡斯

我认为在路由配置中没有办法定义它。

目前,它支持routerLinks和命令式导航以启用

> preserveQueryParams和
> preserveFragment

您可以在空路径路径中添加一个保护,在保护导航中完成/ comp1路由。

router.navigate(['/comp1'],{ preserveQueryParams: true }); //deprecated see update note
router.navigate(['/comp1'],{ queryParamsHandling: "merge" });

有一个PR允许全局配置preserveQueryParams。

更新说明:从https://angular.io/api/router/NavigationExtras开始,不推荐使用preserveQueryParams,而是使用queryParamsHandling

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读