[解決済み] Angular JSでCSSのスタイル属性を動的に適用する
2022-09-16 09:58:45
質問
簡単な問題のはずなのですが、解決策が見つかりません。
私は次のようなマークアップを持っています。
<div style="width:20px; height:20px; margin-top:10px; border:solid 1px black; background-color:#ff0000;"></div>
背景色をスコープに束縛させたいので、こんな感じでやってみました。
<div style="{width:20px; height:20px; margin-top:10px; border:solid 1px black; background-color:{{data.backgroundCol}};}"></div>
これではダメだと思い、いろいろ調べてみると
ng-style
を見つけたのですが、これもうまくいかなかったので、動的な部分を取り除いて、スタイルをハードコーディングして
ng-style
にハードコードしてみました。
<div ng-style="{width:20px; height:20px; margin-top:10px; border:solid 1px black; background-color:#ff0000;}"></div>
となっていて、それすらもうまくいきません。私が誤解しているのは、どのように
ng-style
がどのように機能するかを誤解しているのでしょうか?このような場合
{{data.backgroundCol}}
をプレーンのスタイル属性に入れ、その値を挿入するようにする方法はありますか?
どのように解決するには?
ngStyle ディレクティブにより CSS のスタイルを動的に設定することができます。
表現方法 は,キーがCSSスタイル名であり,値がそれらのCSSキーに対応する値であるオブジェクトにevalする。いくつかのCSSスタイル名はオブジェクトのための有効なキーではないので、それらは引用されなければならない。
ng-style="{color: myColor}"
あなたのコードはこうなります。
<div ng-style="{'width':'20px', 'height':'20px', 'margin-top':'10px', 'border':'solid 1px black', 'background-color':'#ff0000'}"></div>
スコープ変数を使いたい場合。
<div ng-style="{'background-color': data.backgroundCol}"></div>
ここで
を使用した fiddle の例です。
ngStyle
を使用した例と、その下に実行中のスニペットを記述しています。
angular.module('myApp', [])
.controller('MyCtrl', function($scope) {
$scope.items = [{
name: 'Misko',
title: 'Angular creator'
}, {
name: 'Igor',
title: 'Meetup master'
}, {
name: 'Vojta',
title: 'All-around superhero'
}
];
});
.pending-delete {
background-color: pink
}
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app="myApp" ng-controller='MyCtrl' ng-style="{color: myColor}">
<input type="text" ng-model="myColor" placeholder="enter a color name">
<div ng-repeat="item in items" ng-class="{'pending-delete': item.checked}">
name: {{item.name}}, {{item.title}}
<input type="checkbox" ng-model="item.checked" />
<span ng-show="item.checked"/><span>(will be deleted)</span>
</div>
<p>
<div ng-hide="myColor== 'red'">I will hide if the color is set to 'red'.</div>
</div>
関連
-
[解決済み] callとapplyの違いは何ですか?
-
[解決済み] 2つのJavaScriptオブジェクトのプロパティを動的にマージするにはどうすればよいですか?
-
[解決済み] 動的に生成された要素にイベントバインディングを行うか?
-
[解決済み] クラスを条件付きで適用する場合の最適な方法は何ですか?
-
[解決済み] AngularJSで$scope.$watchと$scope.$applyを使用するにはどうすればよいですか?
-
[解決済み] angular-routeとangular-ui-routerの違いは何ですか?
-
[解決済み] .css()関数で追加したスタイルを削除するにはどうしたらいいですか?
-
[解決済み] .css()を使って!importantを適用するには?
-
[解決済み] Google maps API V3 - 同一地点に複数のマーカーを設置する。
-
[解決済み] これは純関数ですか?
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] チェックボックスが選択されているかどうかを確認するjQuery
-
[解決済み] Angularjs - 現在の日付を表示する
-
[解決済み] アサインの左側にJavascriptのオブジェクトブラケット表記({ ナビゲーション } =)があります。
-
[解決済み] jQueryの$という記号の意味は何ですか?
-
[解決済み] javascript includes() 大文字小文字を区別しない
-
[解決済み] サブドメインにまたがってlocalStorageを使用する
-
[解決済み] Javascriptで動的に命名されたメソッドを呼び出すにはどうすればよいですか?
-
[解決済み] JavaScript で `throw` の後に `return` をする必要がありますか?
-
[解決済み] HTML要素にスクロールバーがあるかどうかをチェックする
-
[解決済み] 変異を伴わないオブジェクトからの値の削除