[解決済み] クラスを条件付きで適用する場合の最適な方法は何ですか?
2022-03-15 02:37:44
質問
配列があり、それが
ul
と
li
というコントローラのプロパティがあります。
selectedIndex
. にクラスを追加する最善の方法は何でしょうか?
li
をインデックスとする
selectedIndex
AngularJSで?
現在、私は、(手で)複製しています。
li
のコードにクラスを追加し、そのクラスを
li
タグを使用し
ng-show
と
ng-hide
を1つだけ表示させることができます。
li
インデックスごとに
解決方法は?
私のようにCSSのクラス名をControllerに入れたくない場合は、v1以前の時代から使っている古いトリックを紹介します。クラス名として直接評価される式を書けばいいのです。 選択された カスタムディレクティブは必要ありません。
ng:class="{true:'selected', false:''}[$index==selectedIndex]"
コロン付きの古い構文にご注意ください。
また、条件付きでクラスを適用する、新しい優れた方法があります。
ng-class="{selected: $index==selectedIndex}"
Angularはオブジェクトを返す式をサポートするようになりました。このオブジェクトの各プロパティ(名前)は、クラス名とみなされ、その値に応じて適用されるようになりました。
しかし、これらの方法は機能的に同等ではありません。以下はその例である。
ng-class="{admin:'enabled', moderator:'disabled', '':'hidden'}[user.role]"
したがって、基本的にモデルのプロパティをクラス名にマッピングすることで、既存のCSSクラスを再利用することができ、同時にControllerのコードからCSSクラスを排除することができます。
関連
-
[解決済み] スパンでのCSS固定幅
-
[解決済み] visibility:hiddenとdisplay:noneの違いは何ですか?
-
[解決済み] CSSの爆発を管理する
-
[解決済み] なぜAngularJSはselectに空のオプションを含めるのですか?
-
[解決済み] 部分テンプレートとテンプレートの複雑なネスト
-
[解決済み] モデルデータや振る舞いをどこに置くか?[tl; dr; サービスを利用する]
-
[解決済み】AngularJSのディレクティブスコープにおける「@」と「=」の違いは何ですか?
-
[解決済み】Twitter Bootstrapを使用して要素を隠し、jQueryを使用してそれを表示するには?
-
[解決済み】AngularJSで属性を条件付きで適用するための最良の方法は何ですか?
-
[解決済み] 最もエレガントな方法でポップアップを表示する
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[CSSチュートリアル】CSSアニメーション 途中で止める方法とポーズを維持する方法
-
[CSSチュートリアル】CSS+HTMLで実現するトップナビゲーションバー機能
-
[CSSチュートリアル】CSSのfloatとunfloatについて
-
[css3]css3はtransform-originを使用して、大きな円上のドット分布のレイアウトと回転を実現します。
-
[css3]css3は、3つの方法のサンプルコードのテキストの点滅効果を達成するために
-
[css3]css3は、背景画像の色を変更するためのさまざまな方法を実現するために
-
[CSSチュートリアル】ピュアCSSでDIVホバーを実現するサンプルコード(固定位置編)
-
[css3]赤いパケットのジッター効果を実現するCSS3
-
[解決済み] AngularJSのngClassの条件付き
-
[解決済み】AngularJSでCSSスタイルを条件付きで適用するにはどうすればよいですか?