Angularjs (Versionen unter 1.1.5) bietet die if/else
Funktionalität nicht. Im Folgenden finden Sie einige Optionen, die Sie berücksichtigen sollten, um das zu erreichen, was Sie erreichen möchten:
( Wechseln Sie zum Update unten (Nr. 5), wenn Sie Version 1.1.5 oder höher verwenden. )
1. Ternärer Operator:
Wie von @Kirk in den Kommentaren vorgeschlagen, wäre der sauberste Weg, dies zu tun, die Verwendung eines ternären Operators wie folgt:
<span>{{isLarge ? 'video.large' : 'video.small'}}</span>
kann wie folgt verwendet werden.
<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>
Alternativ können Sie auch verwenden, ng-show/ng-hide
aber wenn Sie dies verwenden, werden sowohl ein großes Video als auch ein kleines Videoelement gerendert und dann dasjenige ausgeblendet, das die ng-hide
Bedingung erfüllt , und dasjenige angezeigt, das die Bedingung erfüllt ng-show
. Auf jeder Seite werden also zwei verschiedene Elemente gerendert.
4. Eine weitere zu berücksichtigende Option ist die ng-class
Richtlinie.
Dies kann wie folgt verwendet werden.
<div ng-class="{large-video: video.large}">
<!-- video block goes here -->
</div>
Das Obige fügt large-video
dem div-Element grundsätzlich eine CSS-Klasse hinzu, wenn dies video.large
wahr ist.
5. ng-if
Richtlinie:
In den obigen Versionen 1.1.5
können Sie die ng-if
Direktive verwenden. Dies würde das Element entfernen, wenn der angegebene Ausdruck zurückgibt, false
und das Element erneut element
in das DOM einfügen, wenn der Ausdruck zurückgibt true
. Kann wie folgt verwendet werden.
<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>