Angular2路由器保持查询字符串

前端之家收集整理的这篇文章主要介绍了Angular2路由器保持查询字符串前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我写了一个使用路由器的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

猜你在找的Angularjs相关文章