Проблема в том, что вы не сбрасываете значение isClicked при нажатии на другие кнопки.
Самое простое решение - что-то вроде этого.
app.component.html
<button mat-button *ngFor="let button of filterButtons" [ngClass]="{'active': button.isClicked}" (click)="setActive(button)">
{{ button.text }}
</button>
app.component.ts
import { Component } from '@angular/core';
@Component({
selector: 'my-app',
templateUrl: './app.component.html',
styleUrls: [ './app.component.css' ]
})
export class AppComponent {
filterButtons = [
{ text: 'Posted', isClicked: false },
{ text: 'FFM', isClicked: false },
{ text: '9999', isClicked: false },
]
setActive(button: any): void {
for(let but of this.filterButtons) {
but.isClicked = false;
}
button.isClicked = true;
}
}
Вы можете найти другие решения, как описано в этом посте