[解決済み] AngularJS テンプレートにおける if else ステートメント
質問
AngularJSのテンプレートで条件分岐を行いたい。Youtube APIから動画一覧を取得する。いくつかのビデオは16:9の比率で、いくつかは4:3の比率です。
このような条件を作りたい。
if video.yt$aspectRatio equals widescreen then
element's attr height="270px"
else
element's attr height="360px"
を使って動画を反復しています。
ng-repeat
. この条件に対して何をすべきか見当もつきません。
- スコープに関数を追加する?
- テンプレートで行う?
解決方法は?
Angularjs (1.1.5以下のバージョン) では
if/else
機能です。以下は、あなたが実現したいことに合わせて検討すべきいくつかのオプションです。
( バージョン1.1.5以上をお使いの方は、以下のアップデート(#5)にジャンプしてください。 )
1. 三項演算子。
コメントで @Kirk が提案したように、最もクリーンな方法は、以下のように三項演算子を使うことでしょう。
<span>{{isLarge ? 'video.large' : 'video.small'}}</span>
2.
ng-switch
ディレクティブを使用します。
は、以下のような使い方ができる。
<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>
3.
ng-hide
/
ng-show
ディレクティブ
あるいは
ng-show/ng-hide
に合致する方を非表示にするのですが、これを使うと実際に大きな動画と小さな動画の両方の要素がレンダリングされ
ng-hide
を満たすものを表示し
ng-show
という条件があります。つまり、各ページで実際には2つの異なる要素をレンダリングすることになります。
4. もう一つの選択肢として
ng-class
ディレクティブを使用します。
これは、以下のように使用することができます。
<div ng-class="{large-video: video.large}">
<!-- video block goes here -->
</div>
上記では基本的に
large-video
の場合、div 要素に css クラスを追加します。
video.large
が真実になります。
UPDATE
アンギュラー1.1.5
が導入されました。
ngIf directive
5.
ng-if
ディレクティブを使用します。
上記のバージョンでは
1.1.5
を使用することができます。
ng-if
ディレクティブを使用します。これは、提供された式が以下を返した場合、その要素を削除します。
false
を挿入し
element
を返した場合、DOM に
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>
関連
-
[解決済み] SwiftのIF LETはどのように評価されるのですか?
-
[解決済み] AngularJSでデータバインディングはどのように機能するのですか?
-
[解決済み] AngularJSを使用して、ブラウザのコンソールで$scope変数にアクセスするにはどうすればよいですか?
-
[解決済み] AngularJSで$scope.$watchと$scope.$applyを使用するにはどうすればよいですか?
-
[解決済み] AngularJS コントローラにおける 'this' と $scope の比較
-
[解決済み] NGIf else "の使い方を教えてください。
-
[解決済み】AngularJSのディレクティブスコープにおける「@」と「=」の違いは何ですか?
-
[解決済み】AngularJSのスコーププロトタイピング/プロトタイピング継承のニュアンスとは?
-
[解決済み] Swiftでif文の中で複数のlet-asを使用する
-
[解決済み] IF」は高いのか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] Makefileの中で条件がある場合、ターゲット内部で
-
[解決済み] gitlabciでif-else条件を使用する方法
-
[解決済み] 代入文の「others=>'0'」はどういう意味ですか?
-
[解決済み] 中括弧のないif文を使用するのは悪い習慣ですか?[クローズド]
-
[解決済み] バッチファイル:(この時点では想定外でした
-
[解決済み] SwiftのIF LETはどのように評価されるのですか?
-
[解決済み] SwiftのIF LETはどのように評価されるのですか?
-
[解決済み] AngularJS テンプレートにおける if else ステートメント
-
[解決済み] GoにはPythonのような "if x in "の構成がありますか?
-
[解決済み】Swiftでif文に範囲演算子を使うことはできますか?