你什么时候在方括号内环绕routerLink?

Dan*_*Dan 24 angular

Angular 2 备忘单显示routerLink模板中有和没有方括号的示例:

<a routerLink="/path">
<a [routerLink]="[ '/path', routeParam ]">
<a [routerLink]="[ '/path', { matrixParam: 'value' } ]">
<a [routerLink]="[ '/path' ]" [queryParams]="{ page: 1 }">
<a [routerLink]="[ '/path' ]" fragment="anchor">
Run Code Online (Sandbox Code Playgroud)

功能有什么不同?

rob*_*rob 32

当您放置方括号routerLink(或任何角度2绑定)时,它将评估您作为JavaScript表达式传递给它的内容.如果你没有放置方括号,routerLink那么你将把它作为文字字符串传递给你.

因此,如果要将数组传递给routerLink或评估变量,则必须使用方括号.如果你想传递一个字符串,你可以做

<a routerLink="/path">
Run Code Online (Sandbox Code Playgroud)

要么

<a [routerLink]="'/path'">
Run Code Online (Sandbox Code Playgroud)


Bra*_*ney 6

如果您想要更深入的答案...

RouterLink 是一个指令,它使用选择器routerLink并有一个名为“routerLink”的属性。因为属性和选择器同名,所以只需要给选择器加括号就可以绑定到那个属性上。

[routerLink]属性接受一组路径段,后跟每个段的参数。您可以使用该数组中的变量来创建链接。

如果您的链接不会改变,那么您就不需要括号,只需使用字符串将您的链接分配给选择器即可。

我在文档中找到了这个:https : //angular.io/api/router/RouterLink

  • 这应该是正确的答案,因为使用由路径段组成的数组创建链接的方式与 javascript 表达式无关。 (3认同)