You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Angular Material普通按钮实现按钮组切换选中效果

实现Angular Material按钮的单选切换效果(复用普通按钮样式)

要实现类似Button Toggle的单选交互,同时保留普通Angular Material按钮的所有样式,只需维护一个选中状态变量,通过绑定样式属性控制按钮切换效果,具体步骤如下:

1. 组件类中添加状态管理与点击逻辑

在组件的.ts文件里,新增变量记录当前选中按钮,再添加点击事件处理函数:

buttonNames: string[] = ['1', '2', '3', '4'];
selectedButton: string | null = null;

onButtonClick(button: string): void {
  this.selectedButton = button;
}

2. 模板中绑定样式与点击事件

在HTML模板里,可通过两种方式实现选中状态切换:

方式一:使用Angular Material内置颜色

直接绑定组件库的color属性,复用主题色体系:

<button 
  mat-raised-button 
  *ngFor="let num of buttonNames"
  [color]="selectedButton === num ? 'primary' : 'default'"
  (click)="onButtonClick(num)"
>
  {{ num }}
</button>

点击按钮时,选中项应用primary主题色,未选中项保持default样式,完全保留mat-raised-button的默认样式特性。

方式二:自定义选中样式

如果需要个性化样式,用ngClass绑定自定义类:

<button 
  mat-raised-button 
  *ngFor="let num of buttonNames"
  [ngClass]="{'active-btn': selectedButton === num}"
  (click)="onButtonClick(num)"
>
  {{ num }}
</button>

然后在组件的.css文件中定义样式:

.active-btn {
  background-color: #1976d2; /* 可替换为自定义颜色 */
  color: #fff;
  box-shadow: 0 3px 1px -2px rgba(0,0,0,.2), 0 2px 2px 0 rgba(0,0,0,.14), 0 1px 5px 0 rgba(0,0,0,.12);
}

效果说明

点击任意按钮后,该按钮切换为选中样式,之前选中的按钮自动恢复默认状态,实现你需要的单选切换交互,同时保留普通按钮的全部样式。

内容的提问来源于stack exchange,提问作者SkylerHunter

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 03:01:12