如果condition为true,我正在使用ngClass(Angular 2)加载一个类的字符串;如果条件为false,我正在使用其他类的字符串!
以下是代码:
<label [ngClass]="{'btn btn-success m-btn m-btn--pill': value==2, 'btn btn-outline-success m-btn m-btn--pill': value!=2}" >
没有问题(但代码与ngClass中的第一部分相同):
第二部分在条件为value!=2
且要加载的类字符串为btn btn-outline-success m-btn m-btn--pill
问题:
条件为value==2
的第一部分和要加载的类字符串为btn btn-success m-btn m-btn--pill
,但加载的唯一类(字符串中可用的许多类)为btn-success
。
我无法理解为什么ngClass只加载一个类,而在字符串中保留其他类!
有人可以告诉我,如果我做错了,或者是角度2的错误吗?
答案 0 :(得分:0)
我知道这个问题很旧,但是显然在角度7中仍然有用,因为我刚遇到了同样的问题。
以某种方式,Angular要求您将2个ng-class语句之间的通用类(其中一个或另一个始终为true)移动到class属性中。否则,常见的语句将无法在语句的第一部分中起作用。
因此,上述问题的解决方案是:
<label class="btn m-btn m-btn--pill" [ngClass]="{'btn-success': value==2, 'btn-outline-success': value!=2}" >