Angular - 被忽略/覆盖的样式

时间:2018-02-24 03:43:14

标签: angular prism.js prismjs

我遇到了未应用于元素的样式的问题。如果我将样式信息添加到组件的styles参数,或者在styleUrls参数中提供CSS文件,我会得到预期的结果。但是,未应用内联HTML样式。在下面的示例中,我尝试将红色背景应用于div,但它保持白色。此HTML作为Angular Component的模板存在。



<div style="background: red;">test</div>
&#13;
&#13;
&#13;

但是,如果我添加ngStyle =&#34;&#34;对于元素如:

&#13;
&#13;
<div style="background: red;" ngStyle="">test</div>
&#13;
&#13;
&#13;

然后Angular将div的背景呈现为红色。

是什么原因导致Angular忽略了像这样的样式属性?

1 个答案:

答案 0 :(得分:1)

ngStyle和style是相同的,它们适用于样式 你可以同时填充两个,并且两个都将应用样式(除非两者都试图做同样的事情,否则不会取消另一个),但是使用[ngStyle]你可以将它绑定到代码中的属性,如下所示: [ngStyle] =“{backgroundColor:getColor()}”,getColor()是一个延迟颜色的字符串或十六进制的函数。

例如的代码段在角度2中有效(在工作中无法验证)

<div style="background-color: black;" [ngStyle]="{color: white}">text with back background and white font color</div>

Why the ngStyle directive is declared into the []?