angularjs - ngswitch с 4 условиями

Мне нужно написать угловой ng-switch с 4 условиями.

Некоторые другие ответы здесь на SO предлагают использовать ng-if вместо ng-switch,

И поэтому я попытался с ng-if, но я не думаю, что это лучший способ, и я объясню, почему:

По сути, мне нужно отобразить 3 разных иконки, в зависимости от некоторых переменных, которые у меня есть в области видимости.

Код в моем шаблоне следующий:

<div class="buttons">
   <div ng-if="test.mMode==4 && test.kit==4 && test.react.on==true && test.act==1">
      <i class="icon ion-man"></i>
   </div>

   <div ng-if="test.mMode==4 && test.kit==4 && test.react.on==false && test.act==1">
      <i class="icon ion-man"></i>
   </div>

   <div ng-if="zone.iActivity==1">
      <i class="icon ion-man"></i>
   </div>
</div>

Теперь, это, для меня, выглядит действительно очень грязно. Кроме того, он не работает должным образом, поскольку выполняет итерацию всех операторов if, выводящих все значения true.

можно ли сделать что-то вроде следующего?

<div class="buttons" ng-switch="test.act && test.Mode && test.kit && test.react.on">
   <div ng-switch-when="1 && 4 && 4 && true">
      <i class="icon ion-man"></i>
   </div>

   <div ng-switch-when="1 && 4 && 4 && false">
      <i class="icon ion-man"></i>
   </div>

   <div ng-switch-when="1"> //I need only the first condition to be true, I don't need the others.
      <i class="icon ion-man"></i>
   </div>
</div>

Или у вас есть другие предложения о том, как правильно обрабатывать этот тип шаблонов?

Надеюсь, вопрос достаточно ясен.

Спасибо за любую помощь

1 ответ

Решение

Немного грязным решением было бы использовать массив и метод toString().

<ng-switch on="[Ex1.x, Ex1.y].toString()">
    <div ng-switch-when="0,true">
      0,true -- jaj
    </div>
    <div ng-switch-when="1,true">
      1,true -- jaj
    </div>
    <div ng-switch-when="2,false">
      2,false -- jaj
    </div>
    <div ng-switch-default>
     default... booo
    </div>
  </ng-switch>

Скрипка: https://jsfiddle.net/r88dhr0w/

Другие вопросы по тегам