您可以使用此模式,它可以用于任意数量的按钮:
在控制器中,设置一组按钮和
selectedButton
变量
buttons= [
{class: "fa fa-long-arrow-up", name: "button1"},
{class: "fa fa-long-arrow-down", name: "button2"},
]
selectedButton;
toggleSelect(button) {
if (button == this.selectedButton) {
this.selectedButton = undefined
} else {
this.selectedButton = button
}
}
然后在模板中填充
选择按钮
单击,并根据是否选中该类来设置该类
<button *ngFor="let button of buttons" class="btn rounded" [ngClass]="(selectedButton == button) ? 'btn-primary' : 'btn-default'" (click)="toggleSelect(button)">
<i [class]="button.class"></i>
</button>
这样你可以有任意数量的按钮,一次只能选择一个
工作示例:
https://stackblitz.com/edit/angular-v9zlaz?file=src%2Fapp%2Fapp.component.html