0

Мне нужно проверить 4 условия в ng-if, которые являются булевыми условиями. Если какое-либо из них истинно, мне нужно отобразить некоторый div.проверка нескольких условий в ng-if

Есть ли простой и лучший способ сделать это, пожалуйста?

<div ng-if="ctrl.survivor || ctrl.doctor || ctrl.patient || ctrl.beneficiary"> 
<div ng-bind-html=" {{ myContent }}"> 
</div> 
</div> 
+2

вы могли бы поставить логику внутри функции в контроллере, но не более простой способ представлять эту логику; функция будет по существу выглядеть одинаково. – Claies

+0

@Claies: Спасибо, так это правильный синтаксис? Я новичок в ANgular. Я еще не тестировал этот код. Я сделаю это сейчас. Но разве это все выглядит хорошо? И да, я получаю настройку для этого только в контроллере – Learner

+0

Согласен с @Claies. Кроме того, какие другие типы пользовательских ролей помимо тех, что упомянуты выше? Вы могли бы потенциально просто логику, используя идею Not if. –

ответ

1

В общем, сложная логика внутри угловых выражений является кодом запаха:

  • трудно читать
  • трудно отлаживать
  • трудно проверить

В общем , Я стараюсь избегать логической логики или чего-либо еще, что указывает на сложность угловых выражений, которые я пишу или просматриваю код. Вместо этого я рекомендую вам извлечь логику в метод контроллера и вызвать метод контроллера напрямую. Это позволяет вам также написать хороший модульный тест. Окончательный код, который я бы рекомендовал бы выглядеть примерно так:

<div ng-if="ctrl.isApplicable()"> 
    <div ng-bind-html=" {{ myContent }}"></div> 
</div> 

В контроллере:

class Ctrl { 
    ...  
    isApplicable() { 
    return survivor || ctrl.doctor || ctrl.patient || ctrl.beneficiary; 
    } 
    ... 
} 

 Смежные вопросы

  • Нет связанных вопросов^_^