0

如果条件为真,我正在使用 ngClass (Angular 2) 加载一个类字符串,如果条件为假,则加载其他类字符串!

这是代码:

<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 只加载一个类而将其他类留在字符串中!

如果我做错了什么或者它是 Angular 2 中的错误,有人可以告诉我吗?

4

1 回答 1

0

我知道这个问题很老,但显然在 Angular 7 中仍然相关,因为我刚刚遇到了同样的问题。

不知何故,角度要求您将 2 个 ng-class 语句(其中一个始终为真)之间的公共类移动到 class 属性中。否则,常见的在语句的第一部分将不起作用。

所以上述问题的解决方法是:

<label class="btn m-btn m-btn--pill" [ngClass]="{'btn-success': value==2, 'btn-outline-success':  value!=2}" >
于 2019-05-02T07:33:16.260 回答