将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

回到顶部