我有一个角度应用程序,需要在运行时在页面上应用一些CSS样式。
使用ng-style的解决方案不可扩展:
我知道,对于特定(已知)项目,可以使用ng-style指令轻松完成此操作,例如:
<div id="mydiv" ng-style="{color: bgColor}">ABCD</div>
但是,此技术不能应用于页面上的所有<a>
或<p>
标签。如何将基于角度范围变量的动态样式应用于页面上标签的所有实例?
如下所示是理想的:
<style>
.in3_counter {color: {{settings.in3Color}};}
.in4_counter {color: {{settings.in4Color}};}
</style>
更新: css范围变量的值不是预先确定的,因此我不知道在变量在运行时设置时(例如,使用颜色选择器)将哪些颜色应用于元素。
有什么建议?
检查以下示例:
var COLOR_CTRL = function($scope, $sce) {
$scope.changeColor = function(color) {
$scope.style = $sce.trustAsHtml('a, p {color: ' + color + '}');
};
$scope.changeColor('#000');
};
var app = angular.module('app', []);
app.controller('ColorCtrl', ['$scope', '$sce', COLOR_CTRL]);
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.4.7/angular.min.js"></script>
<div ng-controller="ColorCtrl" ng-app="app">
<a href="#">anchor</a>
<p>paragraph</p>
<div>
<button ng-click="changeColor('#f00')">red</button>
<button ng-click="changeColor('#0f0')">green</button>
<button ng-click="changeColor('#00f')">blue</button>
</div>
<style data-ng-bind-html="style"></style>
</div>
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句