Ответ 1
Вы можете использовать &&
и ||
, которые будут работать так же, как трёхмерные операторы.
{{item.isValid && 'Valid' || 'Invalid' }}
EDIT: Angular введен тройные операторы в 1.1.5:
{{item.isValid ? 'Valid' : 'Invalid' }}
Есть ли способ написать логическую строку в шаблоне в AngularJS.
Я хочу сделать что-то вроде этого:
<div ng-repeat="item in items">
{{item.isValid ? 'Valid item' : 'Invalid Item'}}
</div>
Вы можете использовать &&
и ||
, которые будут работать так же, как трёхмерные операторы.
{{item.isValid && 'Valid' || 'Invalid' }}
EDIT: Angular введен тройные операторы в 1.1.5:
{{item.isValid ? 'Valid' : 'Invalid' }}
Вы не можете использовать условные выражения в выражениях angular. И если ваше содержимое div светлое (только текст), вы можете использовать ng-bind (это также избавляет вас от необходимости иметь дополнительный элемент span):
<div ng-repeat="item in items" ng-bind="{true: 'Valid item', false: 'Invalid item'}[item.isValid]"></div>
Вы можете вставить прогон с помощью ng-show, чтобы отобразить условный текст
Пример
<div ng-repeat="item in items">
<span ng-show="item.isValid">
Valid item
</span>
<span ng-show="!item.isValid">
Invalid item
</span>
</div>