使用带有 NgClass 指令的属性

Using properties with NgClass directive

我正在尝试做一些看起来应该相当简单的事情,但是我找不到如何去做,而且文档中似乎也没有。这是一个简单的例子:

<div *ngFor="let card of cards | async">
    <div [ngClass]="{card.color : true}">
    </div>
</div>

我可以做到 [ngClass]="[card.color]"[ngClass]="{'red' : true}"

但是,一旦我尝试将两者结合起来,就会出现以下错误:Parser Error: Missing expected : at column 6 in [{card.color: true}]

有人有什么想法吗?谢谢

你可以使用

 ngClass={{card.color}}

您可以使用以下语法有条件地设置 card.color 给出的 class:

[ngClass]="{card.color: condition}"

根据https://angular.io/docs/ts/latest/guide/template-syntax.html

directiveName - 是结构指令的 shorthand 形式,其中长形式只能应用于标签。短格式隐式地将元素包装在 .

中应用的位置

[prop]="value" 用于对象绑定到属性(Angular 组件或指令的 @Input() 或 DOM 元素的 属性 ).

当你使用 [ngClass] 时,你可以绑定到它的是一个 表达式 ,在这些情况下,常见的事情是使用 条件运算符

示例如下:

var c = ((a < b) ? 'minor' : 'major');

如果值为真,c 变量将为 minor,如果值为假,则为 major