【发布时间】:2017-07-06 01:39:46
【问题描述】:
在我们的 Angular 应用程序中,我们有一个 DropDown 组件,其中填充了年份。
一旦我们选择了一年,我们需要改变路由器的 url,就像这样:
网址/客户/2015
网址/客户/2016
网址/客户/2017
或
url/customers/some-other-page/2015
url/customers/some-other-page/2016
url/customers/some-other-page/2017
这可行,但我们将下拉菜单的更改事件委托给需要它的组件。没关系!
但我们认为,如果组件自己改变路线,这会让我们的生活更轻松。
我们试过了:
public onChange(year): void {
this.router.([this.router.url, year]);
}
这仅在第一次有效,第二次网址看起来像这样:
url/customers/some-other-page/2017/2018
第三次:
url/customers/some-other-page/2017/2018/2019
等等……
问题:
那么,如何获取我的路由器的参数并将其替换为当前参数?
【问题讨论】:
-
你使用的是相对路由,使用绝对路由
this.router.(['/customers', 'some-other-page', year]);注意/customers -
这不是真正的重复。我检查了链接...我需要从我的
DropDownComponent导航,所以我必须获取我当前的 url 并附加 DropDown 的新选择值 -
能否将年份作为查询参数而不是必需参数?然后您可以只更改查询参数部分而不更改“基本”路由。
-
这就是我想要做的 :) 似乎这可以与 QueryParameter @DeborahK 一起使用,我现在只是在查看文档以了解如何替换 url 参数重写整个url
标签: angular