我开发了一个Angular 2应用程序,我尝试使用ngClass
来应用CSS类。我已将类名存储在变量className
中,并尝试使用以下代码来应用:
第一种方式
[ngClass]={'{{className}}': expression}
第二种方式
[ngClass]= {className: expression}
但他们都没有工作。
答案 0 :(得分:5)
<强>更新强>
[ngClass]="expression ? cssClass : null"
或只是
[ngClass]="cssClass"
原创(仅适用于Dart)
[ngClass]= {className: expression}
expression
返回true
时,会正常工作
答案 1 :(得分:1)
不应在模板中设置条件,而应将其绑定到变量或函数,并在控制器中返回类的Object。
模板
<!-- From a getter -->
[ngClass]="myClass"
<!-- From a function -->
[ngClass]="myClass(someCondition)"
控制器
// As a getter
get myClass(): any {
return {
someClass: someTruthyCondition
}
}
// From a function
myClass(someCondition): any {
return {
someClass: someCondition === true
}
}
答案 2 :(得分:0)
你应该使用这样的插值:
<div class="{{expression?className:null}}" ></div>
这是一个例子:
<div class="{{something===anotherThing?className:null}}" ></div>
答案 3 :(得分:0)
尝试以下适合我的代码。
在变量中分配类:
class1: string = "class1";
class2: string = "class2";
<强>样式:强>
<style>
.class2 {
height:50px;
background-color:red;
color:white;
width:100px;
}
.class1 {
height:50px;
background-color:blue;
color:white;
width:100px;
}
</style>
<强> HTML:强>
<div [ngClass]="1==1?class1:class2">
Test Class
</div>
开发工具代码:
<强>输出:强>
答案 4 :(得分:-2)
使用此
[ngClass]= {'className': expression}
而expression
是你的条件
和className
是你的css类名。
PS: -
[ngClass]={'{{className}}': expression}
因为你不能在属性绑定中使用{{}}
语法,就像在这种情况下那样