我正在努力清除 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/