【发布时间】:2020-01-21 08:27:39
【问题描述】:
您好,我正在开发一个 Angular 应用程序。我想创建选项卡,单击每个选项卡都会调用不同的功能。我正在使用垫子按钮。我的代码
<div flexLayout="row">
<button mat-flat-button [color]="this.paletteColour" (click)="change()">B2-L1</button>
<button mat-flat-button [color]="this.paletteColour" (click)="change()">B2-L3</button>
<button mat-flat-button [color]="this.paletteColour" (click)="change()">B2-L3</button>
<button mat-flat-button [color]="this.paletteColour" (click)="change()">B2-L4</button>
</div>
.ts 文件
paletteColour
change() {
this.paletteColour = 'warn';
}
.css 文件
.mat-flat-button {
background-color: grey;
border-radius: 0 px !important;;
}
.mat-button, .mat-flat-button, .mat-icon-button, .mat-stroked-button { border-radius: 0px; }
但是当点击一个按钮时,这会改变所有按钮的颜色。如何仅更改一个已单击按钮的颜色,而其余按钮均保持相同颜色。
PS : 只有当我在 css 中评论背景颜色时,颜色变化才有效。
【问题讨论】:
-
发生这种情况是因为所有按钮都指向同一个变量。您需要创建一个单独的变量或对应于每个按钮的变量数组。
-
我更多地考虑像活动这样的行,如果单击该按钮仅该按钮颜色更改,则其他按钮必须保持不变
-
你尝试过原生的javascript方式吗?
-
另外,你说你调用了多个不同的函数,但实际上你总是调用同一个函数。
-
嗨,我想进行两个函数调用,一个是更改按钮颜色,另一个是 api 调用,我没有添加其他函数,因为我的主要目标是了解如何更改所选按钮的颜色
标签: javascript html css angular angular-material