У меня есть список объектов, которые я хотел бы отфильтровать с помощью чипов.Код шаблона выглядит следующим образом ...
<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].Ваша помощь будет принята с благодарностью.