0

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

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

但是,如果我将 ngStyle="" 添加到元素中,例如:

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

然后 Angular 将 div 的背景渲染为红色。

任何想法是什么导致 Angular 忽略这样的样式属性?

4

2 回答 2

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>

为什么将 ngStyle 指令声明到 [] 中?

于 2018-02-24T03:54:39.953 回答
0

我最终升级了我的所有库(从 Angular 4 到 Angular 5)并且没有代码更改,样式信息按预期呈现。

于 2018-03-04T00:00:43.370 回答