Angularjs (versioni precedenti alla 1.1.5) non fornisce la if/else
funzionalità. Di seguito sono riportate alcune opzioni da considerare per ciò che si desidera ottenere:
( Vai all'aggiornamento di seguito (n. 5) se stai utilizzando la versione 1.1.5 o successiva )
1. Operatore ternario:
Come suggerito da @Kirk nei commenti, il modo più pulito per farlo sarebbe usare un operatore ternario come segue:
<span>{{isLarge ? 'video.large' : 'video.small'}}</span>
può essere usato qualcosa di simile al seguente.
<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>
In alternativa, potresti anche usare, ng-show/ng-hide
ma l'utilizzo di questo renderà effettivamente sia un video di grandi dimensioni che un piccolo elemento video e quindi nasconderà quello che soddisfa la ng-hide
condizione e mostra quello che soddisfa la ng-show
condizione. Quindi, in ogni pagina, verranno visualizzati due elementi diversi.
4. Un'altra opzione da considerare è la ng-class
direttiva.
Questo può essere usato come segue.
<div ng-class="{large-video: video.large}">
<!-- video block goes here -->
</div>
Quanto sopra sostanzialmente aggiungerà una large-video
classe CSS all'elemento div se video.large
è vero.
5. ng-if
direttiva:
Nelle versioni precedenti 1.1.5
è possibile utilizzare la ng-if
direttiva. Ciò rimuove l'elemento se l'espressione fornita ritorna false
e reinserisce il element
nel DOM se l'espressione ritorna true
. Può essere usato come segue.
<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>