Я хочу сделать это:
ng-hide="!globals.isAdmin && mapping.is_default"
но выражение всегда равно false
.
Я не хочу определять специальную функцию на $scope
.
Я хочу сделать это:
ng-hide="!globals.isAdmin && mapping.is_default"
но выражение всегда равно false
.
Я не хочу определять специальную функцию на $scope
.
Используйте метод контроллера, если вам нужно запустить произвольный код JavaScript, или вы можете определить фильтр, который вернул true или false.
Я только что тестировал (должен был сделать это первым), и что-то вроде ng-show="!a && b"
работал как ожидалось.
ng-show
/ng-hide
принимает только значения boolean
.
Для сложных выражений полезно использовать контроллер и область действия, чтобы избежать осложнений.
Ниже будет работать (это не очень сложное выражение)
ng-show="User=='admin' || User=='teacher'"
Здесь элемент будет отображаться в пользовательском интерфейсе, когда любое из двух условий возвращает true (операция OR).
Подобным образом вы можете использовать любые выражения.
Это будет работать, если у вас слишком много выражений.
Пример: ng-show="form.type === 'Limited Company' || form.type === 'Limited Partnership'"
Для любых других выражений, чем это, используйте контроллер.
Обычно я стараюсь избегать выражений с ng-show и ng-hide, поскольку они были спроектированы как булевы, а не условные. Если мне нужна логическая и логическая логика, я предпочитаю вставлять условную логику с помощью ng-if в качестве первой проверки, а затем добавить дополнительную проверку для логической логики с ng-show и ng-hide
Howerver, если вы хотите использовать условное выражение для ng-show или ng-hide, вот ссылка с некоторыми примерами: Условное отображение с использованием ng-if, ng-show, ng-hide, ng-include, ng-switch
Некоторые из этих выше ответов не сработали для меня, но это произошло. На всякий случай у кого-то другая проблема.
ng-show="column != 'vendorid' && column !='billingMonth'"