Angularjs (wersje poniżej 1.1.5) nie zapewnia tej if/else
funkcjonalnoś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-hide
ale 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-hide
warunek i pokazuje ten, który spełnia ng-show
warunek. Na każdej stronie będziesz renderować dwa różne elementy.
4. Inną opcją do rozważenia jest ng-class
dyrektywa.
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-video
klasę css do elementu div, jeśli video.large
jest to prawdą.
5. ng-if
dyrektywa:
W powyższych wersjach 1.1.5
możesz skorzystać z ng-if
dyrektywy. Spowoduje to usunięcie elementu, jeśli podane wyrażenie zwróci false
i ponownie wstawi element
element 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>