将AngularJS变量绑定到CSS语法中
我试图弄清楚如何将AngularJS范围变量绑定到CSS语法中。我认为问题出在花括号中。这是我基本上想做的事情:
<style>.css_class {background:{{ angular_variable }}; color:#ffffff;}</style><style>.css_rule {background:{{ "#000000" }}; color:#ffffff;}</style>
<style>.css_rule {background:{{ var | someFilter }}; color:#ffffff;}</style>
关于如何实现这一目标的任何想法?谢谢!
回答:
如此处所述,
angular不会在样式标签内的内容上运行。在那篇文章中有一个解决方法,但是作为一种更灵活的方法,我只是创建一个指令来获取内容,解析它们并替换:
更新的答案
app.directive('parseStyle', function($interpolate) { return function(scope, elem) {
var exp = $interpolate(elem.html()),
watchFunc = function () { return exp(scope); };
scope.$watch(watchFunc, function (html) {
elem.html(html);
});
};
});
用法:
<style parse-style>.css_class {color: {{ angular_variable }};}</style>
http://jsfiddle.net/VUeGG/31/
原始答案
app.directive('parseStyle', function(){
return function(scope, elem)
{
elem.html(scope.$eval('\'' + elem.html() + '\''));
};
});
然后:
<style parse-style>.css_class {color: ' + angular_variable + ';}</style>
尽管不确定浏览器对此是否支持。
http://jsfiddle.net/VUeGG/4/
以上是 将AngularJS变量绑定到CSS语法中 的全部内容, 来源链接: utcz.com/qa/416617.html