ngClass - 从变量中应用多个 类?
ngClass - apply multiple classes from variables?
我正在尝试通过 ngClass 应用多个 classes。没有条件。
我有 2 个变量,它们是 class 名称的字符串。
传入一个变量很容易
[ngClass]='variable1?.font'
我尝试通过使用数组传递这些 classes,因为如果您将 class 名称作为字符串传递
,这就是您这样做的方式
[ngClass]="['btn', 'btn-primary']"
但是传入变量是行不通的。
<button
[ngClass]='[variable1?.font, variable2?.color]'
>
我在网上看到过传入多个 class 的示例,但它们都涉及包含条件。
[ngClass]="{ btn:true, 'btn-primary':true }"
我尽量不包含条件。甚至不确定上面的代码是否有效,因为代码可能认为它是一个 IF-Else 语句。
正确的语法是什么?
谢谢。
你可以在ts文件中设置类的数组,数组上的任何变化都会反映到ngClass
classesList =[]
ngOnInit() {
this.classesList.push(variable1.font);
this.classesList.push(variable1.color);
setTimeout(() =>{
this.classesList.push('font-bold')
},2500);
}
模板
<button [ngClass]='classesList'>
you need to make sure don't push any null value to the array that why your example was not working so make sure you push a string value
所以这可以解决您的问题
<button [ngClass]='[variable1?.font || '' , variable2?.color || '']'>
另一个选项是创建一个字符串值而不是数组
<button [ngClass]='variable1?.font+ ' '+ variable2?.color'>
我正在尝试通过 ngClass 应用多个 classes。没有条件。 我有 2 个变量,它们是 class 名称的字符串。
传入一个变量很容易
[ngClass]='variable1?.font'
我尝试通过使用数组传递这些 classes,因为如果您将 class 名称作为字符串传递
,这就是您这样做的方式[ngClass]="['btn', 'btn-primary']"
但是传入变量是行不通的。
<button
[ngClass]='[variable1?.font, variable2?.color]'
>
我在网上看到过传入多个 class 的示例,但它们都涉及包含条件。
[ngClass]="{ btn:true, 'btn-primary':true }"
我尽量不包含条件。甚至不确定上面的代码是否有效,因为代码可能认为它是一个 IF-Else 语句。
正确的语法是什么?
谢谢。
你可以在ts文件中设置类的数组,数组上的任何变化都会反映到ngClass
classesList =[]
ngOnInit() {
this.classesList.push(variable1.font);
this.classesList.push(variable1.color);
setTimeout(() =>{
this.classesList.push('font-bold')
},2500);
}
模板
<button [ngClass]='classesList'>
you need to make sure don't push any null value to the array that why your example was not working so make sure you push a string value
所以这可以解决您的问题
<button [ngClass]='[variable1?.font || '' , variable2?.color || '']'>
另一个选项是创建一个字符串值而不是数组
<button [ngClass]='variable1?.font+ ' '+ variable2?.color'>