Подтвердить что ты не робот

Встроенная логика в шаблонах в AngularJS

Есть ли способ написать логическую строку в шаблоне в AngularJS.

Я хочу сделать что-то вроде этого:

<div ng-repeat="item in items">
    {{item.isValid ? 'Valid item' : 'Invalid Item'}}
</div>
4b9b3361

Ответ 1

Вы можете использовать && и ||, которые будут работать так же, как трёхмерные операторы.

{{item.isValid && 'Valid' || 'Invalid' }}

EDIT: Angular введен тройные операторы в 1.1.5:

{{item.isValid ? 'Valid' : 'Invalid' }}

Ответ 2

Вы не можете использовать условные выражения в выражениях angular. И если ваше содержимое div светлое (только текст), вы можете использовать ng-bind (это также избавляет вас от необходимости иметь дополнительный элемент span):

<div ng-repeat="item in items" ng-bind="{true: 'Valid item', false: 'Invalid item'}[item.isValid]"></div>

Ответ 3

Вы можете вставить прогон с помощью 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>