如何在新的Router V 3 alpha(vladivostok)中使用routerLink传递查询参数

Gün*_*uer 111 angular2-routing angular

我想传递一个查询参数prop=xxx.

这没用

<a [routerLink]="['/somepath', {queryParams: {prop: 'xxx'}}]>Somewhere</a>
Run Code Online (Sandbox Code Playgroud)

Gün*_*uer 242

queryParams

queryParams是另一个输入routerLink,他们可以像这样传递

<a [routerLink]="['../']" [queryParams]="{prop: 'xxx'}">Somewhere</a>
Run Code Online (Sandbox Code Playgroud)

fragment

<a [routerLink]="['../']" [queryParams]="{prop: 'xxx'}" [fragment]="yyy">Somewhere</a>
Run Code Online (Sandbox Code Playgroud)

routerLinkActiveOptions

要在父路线上设置路线活动类:

[routerLinkActiveOptions]="{ exact: false }"
Run Code Online (Sandbox Code Playgroud)

传递查询参数以this.router.navigate(...)供使用

let navigationExtras: NavigationExtras = {
  queryParams: { 'session_id': sessionId },
  fragment: 'anchor'
};

// Navigate to the login page with extras
this.router.navigate(['/login'], navigationExtras);
Run Code Online (Sandbox Code Playgroud)

另请参见https://angular.io/guide/router#query-parameters-and-fragments

  • 我更新了我的答案.另请参阅我添加的链接.它显示了一个完整的例子. (2认同)
  • 不要忘记订阅目标上的 queryParams:/sf/answers/2740247751/ (2认同)

Viv*_*mar 19

<a [routerLink]="['../']" [queryParams]="{name: 'ferret'}" [fragment]="nose">Ferret Nose</a>
Run Code Online (Sandbox Code Playgroud)
foo://example.com:8042/over/there?name=ferret#nose
\_/   \______________/\_________/ \_________/ \__/
 |           |            |            |        |
scheme    authority      path        query   fragment
Run Code Online (Sandbox Code Playgroud)

欲了解更多信息 - https://angular.io/guide/router#query-parameters-and-fragments


Bra*_*ath 15

对于那些想要传递动态查询字符串参数的人,这对我有用:

假设你有组件模型

x = {name:'xyz'}
Run Code Online (Sandbox Code Playgroud)

html:

<a [routerLink]="['../']" [queryParams]="{prop: x.name}">Somewhere</a>
Run Code Online (Sandbox Code Playgroud)

这将生成链接:

../?prop=xyz
Run Code Online (Sandbox Code Playgroud)


小智 7

你也可以看看这个。

 <router-link
 
:to="{name:'router-name', params: { id:param1}, query:{link:query1}}"

>
 link name

 </router-link
>
Run Code Online (Sandbox Code Playgroud)