Могу ли я каким-то образом использовать конструкцию if-then-else (тернарный оператор) в выражении angularjs, например, у меня есть функция $ scope.isExists (item), которая должна возвращать значение типа bool. Я хочу что-то вроде этого,
<div ng-repeater="item in items">
<div>{{item.description}}</div>
<div>{{isExists(item) ? 'available' : 'oh no, you don't have it'}}</div>
</div>
Я знаю, что могу использовать функцию, которая возвращает строку, меня интересует возможность использования конструкции if-then-else в выражении. Спасибо.
ng-switch
Ответы:
Угловые выражения не поддерживают тернарный оператор до версии 1.1.5, но его можно эмулировать следующим образом:
Так, например, будет работать что-то вроде этого:
ОБНОВЛЕНИЕ: В Angular 1.1.5 добавлена поддержка тернарных операторов:
источник
<
и>
как?Вы можете использовать тернарный оператор начиная с версии 1.1.5 и выше, как показано в этом маленьком плункере (пример в 1.1.5):
По историческим причинам (возможно, в будущем plnkr.co по какой-то причине отключится) вот основной код моего примера:
источник
{{true?true:false}}
Вы можете легко использовать ng-show, например:
Для более сложных тестов вы можете использовать операторы ng-switch:
источник
Это можно сделать одной строкой.
Использование в
td
теге:источник