Angular ngClass multiple ternary operator conditions

What is the best way to put more than 1 ternary conditional class in an angular directive ngClass

where values ​​are class names?

I've tried several variations of this, but I always get a compilation error:

ng-class="$index > 2 ? 'l3 m4 s12 medium' : 'l4 m6 s12 medium', true ? 'red':'blue'

ng-class="{$index > 2 ? 'l3 m4 s12 medium' : 'l4 m6 s12 medium', true ? 'red':'blue'}

+3


source to share


2 answers


My preferred syntax for an ng class is the following, as it clearly refers to which classes you add.

ng-class={ 'className' : yourConditionHere, 'class2' : anotherConditionHere }

      



Try it.

+8


source


So far, I totally agree with @SamuelMS about the explicit mapping of class names ...

If you really want to use multiple ternary operators (or are just curious), you can do it like this:



ng-class="($index > 2 ? 'l3 m4 s12 medium' : 'l4 m6 s12 medium') + ' ' + (true ? 'red' : 'blue')"

      

+6


source







All Articles