Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/31.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular2具有相同等级但不同条件的等级_Angular_Angular2 Template_Angular2 Directives - Fatal编程技术网

Angular2具有相同等级但不同条件的等级

Angular2具有相同等级但不同条件的等级,angular,angular2-template,angular2-directives,Angular,Angular2 Template,Angular2 Directives,如何使用相同的.className但有两种不同条件的[ngClass] 我试着像这样分离它们——但由于某种原因,它没有附加类 <button class="btn" [ngClass]="{'btn-success': condition1, 'btn-success': condition2 }">My Button</button> 如果已经这样做了,则找不到任何地方,我知道您可以使用两个不同的类和一个条件。您需要使用或运算符,而不是和,因为如果其中一个条件为真,您

如何使用相同的
.className
但有两种不同条件的
[ngClass]

我试着像这样分离它们——但由于某种原因,它没有附加类

<button class="btn" [ngClass]="{'btn-success': condition1, 'btn-success': condition2 }">My Button</button>

如果已经这样做了,则找不到任何地方,我知道您可以使用两个不同的类和一个条件。

您需要使用
运算符,而不是
,因为如果其中一个条件为真,您希望应用类:

<button class="btn" [ngClass]="{'btn-success': condition1 || condition2 }">My Button</button>
我的按钮

或者,只使用一个函数或getter(这实际上是首选做法,最小化标记中的条件,这是让CL回退的常见原因,除了明显的反意大利面之外,还有各种原因,例如构建过程如何处理模板、缩小/丑化等)


有一段时间,我走了另一条路,沿着“这种方法很简单,如果框架能够使用它,为什么不使用它”的思路,但是像elvis操作符一样,您发现标记中放的越多,它就越笨拙。将您的逻辑排除在标记之外,除非有明确的理由不这样做。分离关注点等。

啊,感谢您的快速响应,没有想到
情况。
<button class="btn" [ngClass]="{'btn-success': condition1 || condition2 }">My Button</button>
<button class="btn" [ngClass]="computeButtonClass ( )">My Button</button>

<button class="btn" [ngClass]="buttonClass">My Button</button>
computeButtonClass ( ) {
   etc. etc.
}

get buttonClass ( ) {
 etc. etc. 
}