Angularjs (версии ниже 1.1.5) не обеспечивает if/else
функциональность. Ниже приведены несколько вариантов, которые вы можете рассмотреть:
( Перейти к обновлению ниже (# 5), если вы используете версию 1.1.5 или выше )
1. Тернарный оператор:
Как предложено @Kirk в комментариях, самый простой способ сделать это - использовать троичный оператор следующим образом:
<span>{{isLarge ? 'video.large' : 'video.small'}}</span>
может быть использовано что-то вроде следующего.
<div ng-switch on="video">
<div ng-switch-when="video.large">
<!-- code to render a large video block-->
</div>
<div ng-switch-default>
<!-- code to render the regular video block -->
</div>
</div>
В качестве альтернативы вы также можете использовать, ng-show/ng-hide
но, используя это, вы фактически отрендерите и большое видео, и маленький видеоэлемент, а затем скроете тот, который соответствует ng-hide
условию, и покажет тот, который соответствует ng-show
условию. Таким образом, на каждой странице вы будете отображать два разных элемента.
4. Другим вариантом для рассмотрения является ng-class
директива.
Это можно использовать следующим образом.
<div ng-class="{large-video: video.large}">
<!-- video block goes here -->
</div>
Вышесказанное в основном добавит large-video
класс css к элементу div, если video.large
это правда.
5. ng-if
директива:
В версиях выше 1.1.5
вы можете использовать ng-if
директиву. Это удалит элемент, если возвращенное выражение вернет, false
и повторно вставит element
в DOM, если выражение вернется true
. Можно использовать следующим образом.
<div ng-if="video == video.large">
<!-- code to render a large video block-->
</div>
<div ng-if="video != video.large">
<!-- code to render the regular video block -->
</div>