Когда вы будете окружать routerLink в квадратных скобках?

В таблице 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">

Какая разница в функциональности?

Ответ 1

Когда вы помещаете квадратные скобки вокруг routerLink (или любой угловой привязки), он будет оценивать то, что вы передаете ему как выражение JavaScript. Если вы не поставите квадратные скобки вокруг routerLink он примет то, что вы передадите, в виде буквенной строки.

Поэтому, если вы хотите передать массив в routerLink или оценить переменную, вам придется использовать квадратные скобки. Если вы хотите передать строку, вы можете сделать

<a routerLink="/path">

ИЛИ ЖЕ

<a [routerLink]="'/path'">