Angularjs (versiones inferiores a 1.1.5) no proporciona la if/else
funcionalidad. Las siguientes son algunas opciones a considerar para lo que desea lograr:
( Vaya a la actualización a continuación (# 5) si está utilizando la versión 1.1.5 o superior )
1. Operador ternario:
Según lo sugerido por @Kirk en los comentarios, la forma más limpia de hacerlo sería utilizar un operador ternario de la siguiente manera:
<span>{{isLarge ? 'video.large' : 'video.small'}}</span>
se puede usar algo como lo siguiente.
<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>
Alternativamente, también puede usarlo, ng-show/ng-hide
pero usarlo en realidad representará un video grande y un elemento de video pequeño y luego ocultará el que cumpla la ng-hide
condición y muestre el que cumpla la ng-show
condición. Entonces, en cada página, realmente representará dos elementos diferentes.
4. Otra opción a considerar es la ng-class
directiva.
Esto se puede usar de la siguiente manera.
<div ng-class="{large-video: video.large}">
<!-- video block goes here -->
</div>
Lo anterior básicamente agregará una large-video
clase css al elemento div si video.large
es verdadero.
5. ng-if
directiva:
En las versiones anteriores 1.1.5
, puede usar la ng-if
directiva. Esto eliminaría el elemento si la expresión proporcionada regresa false
y se vuelve a insertar element
en el DOM si la expresión regresa true
. Se puede usar de la siguiente manera.
<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>