Angularjs (wersje poniżej 1.1.5) nie zapewnia tej if/elsefunkcjonalności. Poniżej znajduje się kilka opcji do rozważenia, co chcesz osiągnąć:
( Przejdź do aktualizacji poniżej (# 5), jeśli używasz wersji 1.1.5 lub nowszej )
1. Operator trójskładnikowy:
Jak sugeruje @Kirk w komentarzach, najczystszym sposobem na zrobienie tego byłoby użycie operatora trójskładnikowego w następujący sposób:
<span>{{isLarge ? 'video.large' : 'video.small'}}</span>
można użyć czegoś takiego jak poniżej.
<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>
Alternatywnie możesz również użyć, ng-show/ng-hideale użycie tego spowoduje wyrenderowanie zarówno dużego wideo, jak i małego elementu wideo, a następnie ukryje ten, który spełnia ng-hidewarunek i pokazuje ten, który spełnia ng-showwarunek. Na każdej stronie będziesz renderować dwa różne elementy.
4. Inną opcją do rozważenia jest ng-classdyrektywa.
Można to wykorzystać w następujący sposób.
<div ng-class="{large-video: video.large}">
<!-- video block goes here -->
</div>
Powyższe w zasadzie doda large-videoklasę css do elementu div, jeśli video.largejest to prawdą.
5. ng-ifdyrektywa:
W powyższych wersjach 1.1.5możesz skorzystać z ng-ifdyrektywy. Spowoduje to usunięcie elementu, jeśli podane wyrażenie zwróci falsei ponownie wstawi elementelement DOM, jeśli wyrażenie zostanie zwrócone true. Może być używany w następujący sposób.
<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>