Angular2,如何清除路由器导航上的 URL 查询参数

标签 angular angular2-routing

我正在努力清除 Angular 2.4.2 导航期间的 URL 参数。我已尝试附加每个选项以清除以下导航行中的参数,或其中与导航或 navigateByUrl 的任何混合,但无法弄清楚如何完成。

this.router.navigateByUrl(this.router.url, { queryParams: {}, preserveQueryParams: false });

例如,我在路线 /section1/page1?key1=abc&key2=def 并希望留在同一路线但删除所有 url 参数,因此最终结果应该是 /section/page1

最佳答案

正如 DeborahK 所指出的,当我导航到 this.router.url 时,该 URL 已经嵌入了 url 参数。为了解决这个问题,我将 URL 中的参数作为字符串剥离,然后使用 navigateByUrl 跳转到那里。

let url: string = this.router.url.substring(0, this.router.url.indexOf("?"));
this.router.navigateByUrl(url);

关于Angular2,如何清除路由器导航上的 URL 查询参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43665206/

相关文章:

Angular.io/Angular 4. 如何在触发另一个组件 View 时刷新一个组件 View

angular - Angular2中LocationStrategy实例化时出错

Angular2 this.route.params.map

Angular CLI 停止工作 - 意外 token {

angular - 同时在 chrome 和 IE11 中支持 Angular Element 的问题

Angular 5,IE11 中的 URLSearchParams

angular - 使用类似路由时如何将数据推送到 Angular 2 中的数组

angular - 为单个路由渲染多个组件?

angularjs - 有没有办法将 Angular 2 属性指令传递给函数

javascript - 在 *ngFor 中为开放模式生成唯一的变量名称