Angularjs (1.1.5 より前のバージョン) はif/else
機能を提供しません。以下は、達成したいことを検討するためのいくつかのオプションです。
(バージョン 1.1.5 以降を使用している場合は、以下の更新 (#5) にジャンプしてください)
1. 三項演算子:
コメントで@Kirkが示唆しているように、これを行う最もクリーンな方法は、次のように三項演算子を使用することです。
<span>{{isLarge ? 'video.large' : 'video.small'}}</span>
次のようなものを使用できます。
<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>
または、これを使用することもできますng-show/ng-hide
が、これを使用すると、実際には大きなビデオ要素と小さなビデオ要素の両方がレンダリングされ、条件に一致する要素が非表示になり、ng-hide
条件に一致する要素が表示されng-show
ます。したがって、実際には各ページで 2 つの異なる要素をレンダリングすることになります。
4. 考慮すべきもう 1 つのオプションは、ng-class
ディレクティブです。
これは次のように使用できます。
<div ng-class="{large-video: video.large}">
<!-- video block goes here -->
</div>
上記は基本的に、真実でlarge-video
あれば div 要素に css クラスを追加しvideo.large
ます。
上記のバージョンでは、ディレクティブ1.1.5
を使用できます。ng-if
これにより、指定された式が を返す場合は要素が削除され、式が を返す場合は DOM に がfalse
再挿入されます。以下のように使用できます。element
true
<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>