一つの質問があります...
条件付きスタイリングが必要な場合:ng-class
またはng-style
構造を使用する必要があります。
だが...
例:私は管理者であり、アプリケーションの色をcolorpicker
からのカスタム色に変更したい。 cssのコードを変更するにはどうすればよいですか?
たとえば、style.css
に次の行があります。
body{
background: #ffffff;
}
(a、h1などのすべてのタグもいくつかの色を実装しています)
そしてコントローラーでこれを#ffffff
から#000000
に変更します。
各コントローラの各タグでng-class
またはng-style
を使用せずにcssでこの色を変更する最良の方法は何ですか?
最善の方法は、color
、background-color
、border-color
などがオーバーライドされます。しかし、angularjsでは十分ではありません。
color-default.css
body {
background: #fff;
}
color.css
body {
background: #f00;
}
フルJSウェイ
オーバーライドするすべての要素にクラスを追加します。次のように、すべてのプロパティのクラスを作成します。
.skin-color { color: {{color}}; }
.skin-background-color { background-color: {{color}}; }
.skin-border-color { border-color: {{color}}; }
etc..
必要な場所でHTMLにクラスを適用します。
<h1 class="skin-color">My title</h1>
<p>Hello I'm online!</p>
<p class="skin-background-color">No difference!</p>
<p><a href="#">I'm link</a></p>
たとえば、色変数をlocalStorageに保存できます。
デモ: http://codepen.io/anon/pen/jPrabY
私が考えることができる最も簡単な方法は、たとえば、myBoxをクリックすると背景色が変わることです。
html:
<div class="myBox" ng-click="changeBackgroundColor()"></div>
js:
$scope.changeBackgroundColor = function(){
angular.element('.myBox').css('background-color', '#000');
}
css:
.myBox{background-color: #fff;}
お役に立てば幸いです。