首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >注入来自服务器的CSS变量名(Angular 12)

注入来自服务器的CSS变量名(Angular 12)
EN

Stack Overflow用户
提问于 2021-06-08 21:50:26
回答 1查看 105关注 0票数 0

我正在努力寻找将css变量注入angular应用程序的最佳解决方案(目前使用Angular 12)。

这是我使用的代码:

代码语言:javascript
复制
 private injectStyles(data: any) {
    const styles = this.document.createElement('STYLE') as HTMLStyleElement;
    styles.id = 'dynamic-css';

    this.test = `:root {      
      --main-bg-color: black;
    }`;
    
    styles.innerHTML = this.test;
    this.renderer.appendChild(this.document.head, styles);
}

这段代码是在app.component.ts文件上执行的,效果很好,我可以在整个应用程序中使用这个css变量。我现在尝试实现的是使用来自服务器的数据扩展this.test对象,并应用之前在Visual settings模块中设置的这些自定义CSS值。

Css变量不能有"“引号。"--button-color": "#a86c6c" (这是我从服务器得到的),我想在this.test对象上注入这个不带引号的属性,但我不能这样做。有什么想法吗?

非常感谢您的帮助,谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-06-10 10:52:18

Object.keys是你的朋友

代码语言:javascript
复制
 let dataString = '';
 Object.keys(data).forEach(key => {
    dataString += `${key}: ${data[key]};`
 });
 this.test = `:root {      
  --main-bg-color: black;
  ${dataString}
}`;

如果需要,您可能需要将引号添加到值中,如下所示

代码语言:javascript
复制
`dataString += `${key}: "${data[key]};"`
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67888364

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档