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
є truthy.
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>