css - 是否可以在 Angular 中将动态样式作为字符串应用?

标签 css angular styles

我有一个 <span>我想应用动态样式。

样式存储在类 css 中 string变量,可以是任意的,例如

myStyle = 'color: white; font-weight: bold;'

myStyle = 'background-color: red;'

我希望它能像这样工作

<span style="{{myStyle}}">

但它没有。

我尝试了不同的选择,但由于不同的原因似乎都不适合我:

  • 我不能将样式放在 .css 文件中并使用类名,因为样式是以上述字符串的形式来自服务器
  • 使用 [style.color]等不适合我,因为我不知道风格可以是什么
  • 使用 [ngStyle]不适合我,因为它需要像 {'color': 'red', 'font-weight': 'bold'} 这样的对象我只有字符串

我将样式存储在字符串中的原因是因为我需要在服务器上生成的 HTML 中应用它,我只需将该字符串传递给速度模板中的占位符变量。

我几乎确信它不能按照我想要的方式完成,但可能我忽略了一些解决方案。

最佳答案

您只需要 DomSanitizerbypassSecurityTrustStyle

Component side :

import { DomSanitizer } from '@angular/platform-browser';

constructor(private doms : DomSanitizer) {}

newStyle = 'background-color:red';

safeCss(style) {
    return this.doms.bypassSecurityTrustStyle(style);
}

Template side :

<p [style]="safeCss(this.newStyle)">
  Start editing to see some magic happen :)
</p>

WORKING DEMO

关于css - 是否可以在 Angular 中将动态样式作为字符串应用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47350066/

相关文章:

angular - 如何以 Angular 2刷新页面

angular - 对响应式(Reactive)数组进行排序

css - 使用嵌入式 CSS 嵌入响应式 YouTube 视频

JavaScript 无法在我机器上的任何浏览器上运行

node.js - @angular/cli@8.3.19 安装后脚本失败

wpf - app.xaml 中的网格样式使内容不可见

html - 将图像对齐到文本框的右侧

css - style.css 在 wordpress 中不起作用

html - 如何防止 div 调整大小?

css - div 未扩展为所有显示器尺寸的百分比