Я хочу зробити це:
ng-hide="!globals.isAdmin && mapping.is_default"
але вираз оцінюється завжди до false
.
Я не хочу визначати спеціальну функцію $scope
.
Я хочу зробити це:
ng-hide="!globals.isAdmin && mapping.is_default"
але вираз оцінюється завжди до false
.
Я не хочу визначати спеціальну функцію $scope
.
Відповіді:
Використовуйте метод контролера, якщо вам потрібно запустити довільний код JavaScript, або ви можете визначити фільтр, який повертав справжній або хибний.
Я щойно тестував (мав би це зробити спочатку), і щось на кшталт ng-show="!a && b"
працювало так, як очікувалося.
ng-show
/ ng-hide
приймає лише boolean
значення.
Для складних виразів добре використовувати контролер та область, щоб уникнути ускладнень.
Нижче буде працювати (Це не дуже складний вираз)
ng-show="User=='admin' || User=='teacher'"
Тут елемент буде показаний в інтерфейсі користувача, коли будь-яка з двох умов повернеться істиною (АБО операція).
Так, ви можете використовувати будь-які вирази.
Це спрацює, якщо ви не маєте занадто багато виразів.
Приклад: ng-show="form.type === 'Limited Company' || form.type === 'Limited Partnership'"
Для будь-яких виразів, ніж це, використовуйте контролер.
This will work if you do not have too many expressions.
хоча я погоджуюся, що це потрібно робити замість контролера.
Я, як правило, намагаюся уникати виразів з ng-show та ng-hid, оскільки вони були розроблені як булеві, а не умовні. Якщо мені потрібна як умовна, так і булева логіка, я вважаю за краще вводити умовну логіку, використовуючи ng-if як першу перевірку, то додаю додаткову перевірку булевої логіки з ng-show та ng-hid
Howerver, якщо ви хочете використовувати умовне для ng-show або ng-hid, ось посилання з деякими прикладами: Умовне відображення за допомогою ng-if, ng-show, ng-hid, ng-include, ng-switch
Деякі з цих вище відповідей не спрацювали для мене, але це все-таки було. Про всяк випадок, якщо хтось інший має те саме питання.
ng-show="column != 'vendorid' && column !='billingMonth'"
false
, можливо, ви захочете ще раз перевірити ці значення. Можливо, що об’єкти "undefined