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>
上記は、trueのlarge-video
場合、基本的にcssクラスをdiv要素に追加しvideo.large
ます。
5. ng-if
ディレクティブ:
上記のバージョンで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>