Ошибка углового разбора: получена интерполяция ({{}}) там, где ожидалось выражение - PullRequest
0 голосов
/ 17 ноября 2018

У меня есть список объектов, которые я хотел бы отфильтровать с помощью чипов.Код шаблона выглядит следующим образом ...

  <mat-chip-list>
    <mat-chip selected="filterValue=='All'" (click)="filterBy('All')">All items</mat-chip>
    <mat-chip *ngFor="let item of items" selected="filterValue=='{{item.name}}'"
    (click)="filterBy(item.name)">
    {{item.name}}
    </mat-chip>
  </mat-chip-list>

У меня есть свойство в component.ts, которое называется filterValue со значением по умолчанию, равным «All», и методом filterBy, которое просто меняет значение filterValue.когда вы нажимаете на чип.Я ожидал, что атрибут selected будет вычислять выражение и возвращать соответствующее значение (true или false).Однако, как и в настоящее время, он всегда возвращает true.

Если бы я окружил выбранное свойство квадратными скобками, то я получил бы ошибку: [Angular] Parse Error: Got interpolation ({{}}) where expression was expected...

Я пытался использовать[class.active]="filterValue=='{{item.name}}'" но это также возвращает [Angular] Parse Error: Got interpolation ({{}}) where expression was expected...

Я знаю, что {{}} никогда не сочетается с [prop]="..." или (event)="...", но я не могу понять, как решитьмоя конкретная проблема.Я хотел бы знать, как использовать как выбранное свойство mat-chip, так и способ [class.active].Ваша помощь будет принята с благодарностью.

...