Angularjs (Versionen unter 1.1.5) bietet die if/elseFunktionalitä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-hideaber wenn Sie dies verwenden, werden sowohl ein großes Video als auch ein kleines Videoelement gerendert und dann dasjenige ausgeblendet, das die ng-hideBedingung 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-classRichtlinie.
Dies kann wie folgt verwendet werden.
<div ng-class="{large-video: video.large}">
<!-- video block goes here -->
</div>
Das Obige fügt large-videodem div-Element grundsätzlich eine CSS-Klasse hinzu, wenn dies video.largewahr ist.
5. ng-ifRichtlinie:
In den obigen Versionen 1.1.5können Sie die ng-ifDirektive verwenden. Dies würde das Element entfernen, wenn der angegebene Ausdruck zurückgibt, falseund das Element erneut elementin 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>