ngClass 中的多个 类
Multiple classes in ngClass
我正在尝试在 *ngClass 中添加多个值,这些值过去在以前的 alpha 版本中有效,但现在似乎在 angular2 beta 中无效:
<i *ngClass="['fa','fa-star']"></i>
产生错误:
EXCEPTION: TypeError: Cannot read property 'add' of undefined in
[['fa','fa-star'] in PostView@30:27]
我在这里错过了什么?
您应该使用方括号来创建 属性 绑定。参见 this plunk
<i [ngClass]="['fa','fa-star']"></i>
如果您不打算动态更改这些 类,那么使用 ngClass
就太过分了。您只需在模板中使用 class="fa fa-star"
。
ngClass
当你想动态打开和关闭这些时,应该使用。文档中有一个示例:
您的组件将有一个方法:
setClasses() {
return {
saveable: this.canSave, // true
modified: !this.isUnchanged, // false
special: this.isSpecial, // true
}
}
然后在您的模板中使用 ngClass
,如下所示:
<div [ngClass]="setClasses()">This div is saveable and special</div>
您还可以构建一个包含多个 classes 的字符串。
在这种情况下,additionalClass 是一个包含 classname 的 @Input 变量,而 active 是一个设置活跃 class
<div [ngClass]="(additionalClass + ' ' + (active ? 'active' : ''))"></div>
我正在尝试在 *ngClass 中添加多个值,这些值过去在以前的 alpha 版本中有效,但现在似乎在 angular2 beta 中无效:
<i *ngClass="['fa','fa-star']"></i>
产生错误:
EXCEPTION: TypeError: Cannot read property 'add' of undefined in [['fa','fa-star'] in PostView@30:27]
我在这里错过了什么?
您应该使用方括号来创建 属性 绑定。参见 this plunk
<i [ngClass]="['fa','fa-star']"></i>
如果您不打算动态更改这些 类,那么使用 ngClass
就太过分了。您只需在模板中使用 class="fa fa-star"
。
ngClass
当你想动态打开和关闭这些时,应该使用。文档中有一个示例:
您的组件将有一个方法:
setClasses() {
return {
saveable: this.canSave, // true
modified: !this.isUnchanged, // false
special: this.isSpecial, // true
}
}
然后在您的模板中使用 ngClass
,如下所示:
<div [ngClass]="setClasses()">This div is saveable and special</div>
您还可以构建一个包含多个 classes 的字符串。
在这种情况下,additionalClass 是一个包含 classname 的 @Input 变量,而 active 是一个设置活跃 class
<div [ngClass]="(additionalClass + ' ' + (active ? 'active' : ''))"></div>