O Angularjs (versões abaixo da 1.1.5) não fornece a if/else
funcionalidade. A seguir, algumas opções a serem consideradas para o que você deseja alcançar:
( Salte para a atualização abaixo (# 5) se você estiver usando a versão 1.1.5 ou superior )
1. Operador ternário:
Conforme sugerido por @Kirk nos comentários, a maneira mais limpa de fazer isso seria usar um operador ternário da seguinte maneira:
<span>{{isLarge ? 'video.large' : 'video.small'}}</span>
pode ser usado algo como o seguinte.
<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>
Como alternativa, você também pode usar, ng-show/ng-hide
mas usá-lo na verdade renderiza um vídeo grande e um pequeno elemento de vídeo e depois oculta o que atende à ng-hide
condição e mostra o que atendeng-show
condição. Então, em cada página, você estará renderizando dois elementos diferentes.
4. Outra opção a considerar é a ng-class
diretiva.
Isso pode ser usado da seguinte maneira.
<div ng-class="{large-video: video.large}">
<!-- video block goes here -->
</div>
O exemplo acima basicamente adicionará uma large-video
classe css ao elemento div, se video.large
for verdade.
5. ng-if
directiva:
Nas versões acima, 1.1.5
você pode usar a ng-if
diretiva. Isso removeria o elemento se a expressão fornecida retornar false
e reinserir o element
no DOM se a expressão retornar true
. Pode ser usado da seguinte maneira.
<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>