我正在使用有角度的材料创建侧栏菜单。我没有找到一种基于某些组件属性来更改按钮颜色的方法。
我已经阅读了文档:https://material.angular.io/components/button/overview
关于主题,它只说:
Buttons can be colored in terms of the current theme using the color property to set the background color to primary, accent, or warn.
这是我的代码:
<button
*ngFor="let link of links; let i = index"
mat-raised-button
color="primary"
(click)="selectedIndex = i"
[routerLink]="link.routerLink">
</button>
我什至不知道是否可能,但是我正在寻找这样的东西:
<button
*ngFor="let link of links; let i = index"
mat-raised-button
(click)="selectedIndex = i"
[color]="selectedIndex === i ? primary : warm"
[routerLink]="link.routerLink">
</button>
答案 0 :(得分:3)
很有可能,您需要将字符串文字传递给数据绑定[color]
[color]="selectedIndex === i ? 'primary' : 'warm'"
Stackblitz
https://stackblitz.com/edit/angular-npzkiu?embed=1&file=app/button-overview-example.html
答案 1 :(得分:2)
您必须用引号将颜色主题名称括起来才能将其作为字符串传递:
[color]="selectedIndex === i ? 'primary' : 'warn'"
有关演示,请参见this stackblitz。
答案 2 :(得分:2)
尝试此操作,将primary更改为“ primary”,并警告为“ warn”,应该会产生所需的效果。
<button
*ngFor="let link of links; let i = index"
mat-raised-button
(click)="selectedIndex = i"
[color]="selectedIndex === i ? 'primary' : 'warn'"
[routerLink]="link.routerLink">
</button>
答案 3 :(得分:2)
这可以解决您的问题,使用单引号而不是没有引号:
[color]="selectedIndex === i ? 'primary' : 'warn'"