[解決済み】AngularJSのテンプレートで三項演算子
2022-04-20 14:38:34
質問
AngularJSで(テンプレートで)三分割をするにはどうすればいいのでしょうか?
コントローラの関数を作って呼び出すのではなく、htmlの属性(classやstyle)を利用できるといいのですが。
解決方法は?
更新情報 : Angular 1.1.5で追加された 三項演算子 と書くことができるようになりました。
<li ng-class="$first ? 'firstRow' : 'nonFirstRow'">
以前のバージョンのAngularを使用している場合、選択肢は2つです。
-
(condition && result_if_true || !condition && result_if_false)
-
{true: 'result_if_true', false: 'result_if_false'}[condition]
は、2つのプロパティを持つオブジェクトを作成します。 配列構文を使って、true という名前のプロパティと false という名前のプロパティのどちらかを選択し、関連する値を返します。
例
<li class="{{{true: 'myClass1 myClass2', false: ''}[$first]}}">...</li>
or
<li ng-class="{true: 'myClass1 myClass2', false: ''}[$first]">...</li>
firstは最初の要素のng-repeatの中でtrueに設定されているので、上記はループの最初の回だけクラス 'myClass1' と 'myClass2' を適用することになります。
と ngクラス ng-classは、以下のいずれかに評価されなければならない式を取ります。
- スペースで区切られたクラス名の文字列
- クラス名の配列
- クラス名とブーリアン値のマップ/オブジェクト。
上記1)の例を挙げました。 以下は3の例で、もっと読みやすいと思います。
<li ng-class="{myClass: $first, anotherClass: $index == 2}">...</li>
ng-repeatループの初回に、クラスmyClassが追加されます。 3回目($indexが0から始まる)のとき、anotherClassが追加されます。
ngスタイル は、CSS スタイル名と CSS 値のマップ/オブジェクトとして評価される必要がある式を取ります。 例えば
<li ng-style="{true: {color: 'red'}, false: {}}[$first]">...</li>
関連
-
[解決済み】未定義のプロパティ 'bind' を読み込めない。React.js【重複あり
-
[解決済み】Uncaught ReferenceError。Firebase は定義されていません。
-
[解決済み】Syntax error: JavaScriptの不正なreturnステートメント
-
[解決済み】Javascript、[オブジェクトHTMLInputElement]を表示中。]
-
[解決済み] JavaScriptで "use strict "は何をするのか、その根拠は?
-
[解決済み] とは何ですか! (not not)演算子とは何ですか?
-
[解決済み] event.preventDefault() vs. return false
-
[解決済み] リンクのように動作するHTMLボタンを作成する方法
-
[解決済み】JavaScriptの比較では、どちらの等号演算子(== vs ===)を使うべきですか?
-
[解決済み】Pythonに三項条件演算子はありますか?
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】ある要素が可視DOMに存在するかどうかを確認するにはどうすればいいですか?
-
[解決済み] [Solved] Uncaught TypeError: nullのプロパティ 'appendChild' を読み取ることができない。
-
[解決済み】Reactのeslintエラーはpropsの検証で見つからない
-
[解決済み】Uncaught SyntaxError: JSON の位置 0 に予期しないトークン u があります。
-
[解決済み】React-Routerの子が1つしかない。
-
[解決済み】Uncaught ReferenceError。Firebase は定義されていません。
-
[解決済み】Syntax error: JavaScriptの不正なreturnステートメント
-
[解決済み】ETIMEDOUTエラーの対処方法は?
-
[解決済み】HTMLの最初の行に予期しないトークン<がある。
-
[解決済み] angularjs: background-image:url(...) に相当するng-src。