RouterLink
让你可以在应用中链接到特定的路由。
Lets you link to specific routes in your app.
NgModule
选择器
:not(a):not(area)[routerLink]
属性
属性 | 说明 |
---|---|
@Input() | Passed to Router#createUrlTree as part of the 参见: |
@Input() | Passed to Router#createUrlTree as part of the 参见: |
@Input() | Passed to Router#createUrlTree as part of the 参见: |
@Input() | Passed to Router#createUrlTree as part of the 参见: |
@Input() | Passed to Router#createUrlTree as part of the 参见: |
@Input() | Passed to Router#createUrlTree as part of the 参见: |
@Input() | Passed to Router#createUrlTree as part of the 参见: |
@Input() | Write-only. 参见: |
@Input() | Write-only. |
urlTree: UrlTree | 只读 |
说明
考虑下列路由配置: [{ path: 'user/:name', component: UserCmp }]
. 如果要链接到这个 user/:name
路由,你可以使用 RouterLink
指令。
Consider the following route configuration: [{ path: 'user/:name', component: UserCmp }]
. When linking to this user/:name
route, you use the RouterLink
directive.
如果该链接是静态的,你可以使用下列指令: <a routerLink="/user/bob">链接到 user 组件</a>
If the link is static, you can use the directive as follows: <a routerLink="/user/bob">link to user component</a>
如果你要用动态值来生成该链接,你可以传入一组路径片段,每个片段后面都可以跟一些参数。
If you use dynamic values to generate the link, you can pass an array of path segments, followed by the params for each segment.
比如 ['/team', teamId, 'user', userName, {details: true}]
表示我们要生成一个到 /team/11/user/bob;details=true
的链接。
For instance ['/team', teamId, 'user', userName, {details: true}]
means that we want to generate a link to /team/11/user/bob;details=true
.
多个静态片段可以合并为一个(比如 ['/team/11/user', userName, {details: true}]
)。
Multiple static segments can be merged into one (e.g., ['/team/11/user', userName, {details: true}]
).
第一个参数名可以使用 /
、./
或 ../
前缀:
The first segment name can be prepended with /
, ./
, or ../
:
如果第一个片段用
/
开头,则路由器会从应用的根路由开始查找。If the first segment begins with
/
, the router will look up the route from the root of the app.如果第一个片段用
./
开头或者没有用斜杠开头,路由器就会从当前激活路由开始查找。If the first segment begins with
./
, or doesn't begin with a slash, the router will instead look in the children of the current activated route.如果第一个片段以
../
开头,则路由器将会向上找一级。And if the first segment begins with
../
, the router will go up one level.
你可以像这样设置查询参数和 #
片段:
You can set query params and fragment as follows:
<a [routerLink]="['/user/bob']" [queryParams]="{debug: true}" fragment="education">
link to user component
</a>
RouterLink 将会使用它们生成如下链接:/user/bob#education?debug=true
。
RouterLink will use these to generate this link: /user/bob?debug=true#education
.
(从 v4.0.0 中开始已废弃,请用 queryParamsHandling
来代替)你还可以告诉该指令保留当前的查询参数(?
)和 #
片段:
(Deprecated in v4.0.0 use queryParamsHandling
instead) You can also tell the directive to preserve the current query params and fragment:
<a [routerLink]="['/user/bob']" preserveQueryParams preserveFragment>
link to user component
</a>
你可以告诉该指令要如何处理查询参数,有效的选项包括:
You can tell the directive how to handle queryParams. Available options are:
'merge'
:把老的查询参数合并进新的查询参数中'merge'
: merge the queryParams into the current queryParams'preserve'
:保持当前的查询参数'preserve'
: preserve the current queryParams默认 /
''
:只使用当前查询参数default/
''
: use the queryParams only
这个选项和 NavigationExtras#queryParamsHandling 的一样。
Same options for NavigationExtras#queryParamsHandling.
<a [routerLink]="['/user/bob']" [queryParams]="{debug: true}" queryParamsHandling="merge">
link to user component
</a>
You can provide a state
value to be persisted to the browser's History.state property (See https://developer.mozilla.org/en-US/docs/Web/API/History#Properties). It's used as follows:
<a [routerLink]="['/user/bob']" [state]="{tracingId: 123}">
link to user component
</a>
And later the value can be read from the router through router.getCurrentNavigation
. For example, to capture the tracingId
above during the NavigationStart
event:
// Get NavigationStart events
router.events.pipe(filter(e => e instanceof NavigationStart)).subscribe(e => {
const navigation = router.getCurrentNavigation();
tracingService.trace({id: navigation.extras.state.tracingId});
});
RouterLink
指令总是把新提供的输入看作是对当前 URL 的增量修改。
The router link directive always treats the provided input as a delta to the current url.
例如,如果当前 url 是 /user/(box//aux:team)
,
For instance, if the current url is /user/(box//aux:team)
.
那么 <a [routerLink]="['/user/jim']">Jim</a>
生成的链接将是 /user/(jim//aux:team)
。
Then the following link <a [routerLink]="['/user/jim']">Jim</a>
will generate the link /user/(jim//aux:team)
.
欲知详情,参见 createUrlTree。
See createUrlTree for more information.
方法
参数没有参数。 返回值
|