有什么区别[routerLink]routerLink?您应该如何使用每个?

答案

您将在所有指令中看到这一点:

当您使用括号时,这意味着您正在传递可约束属性(变量)。

  <a [routerLink]="routerLinkVariable"></a>

因此,可以在您的课内定义此变量(RouterLinkVariable),并且应该具有以下值:

export class myComponent {

    public routerLinkVariable = "/home"; // the value of the variable is string!

但是有了变量,您有机会使其动态吧?

export class myComponent {

    public routerLinkVariable = "/home"; // the value of the variable is string!


    updateRouterLinkVariable(){

        this.routerLinkVariable = '/about';
    }

在没有括号的情况下,您只会通过字符串,就无法更改它,它是硬编码的,并且整个应用程序都会像那样。

<a routerLink="/home"></a>

UPDATE :

有关专门用于RouterLink的括号的另一个专业是,您可以将动态查询参数传递给您要导航的链接:

因此添加一个新变量

export class myComponent {
        private dynamicQueryParameter = '129';
        public routerLinkVariable = "/home"; 

更新[RouterLink]

  <a [routerLink]="[routerLinkVariable]"[queryParams]="{unit: dynamicQueryParameter}"></a>

当您想单击此链接时,它将成为:

  <a href="/home?unit=129"></a>

来自: stackoverflow.com