css - 如何在 Angular 组件的样式标签中使用字符串插值?

标签 css string angular styles interpolation

@Component({
  selector: 'app-style',
  template: `
    <style>
      .test {
        color: {{ textColor }}
      }
    </style>
  `
})
export class StyleComponent {
  textColor = "red";
}

这似乎不起作用,我需要我的样式是动态的并且在某些特定的 CSS 类中。我可以通过其他方式做到这一点吗?

最佳答案

当组件被渲染时,style 标签将移动到页面的 head 元素,并且该元素内的任何 Angular 语法都将被忽略。

我发现的唯一方法是动态创建样式元素并提供所需样式。

app.component.ts

  textColor = 'red';
  constructor(private el: ElementRef) {

  }

  ngOnInit() {

    let style: string = `
     .test {color :${this.textColor}; }
    `;

    this.createStyle(style);

  }

  createStyle(style: string): void {
    const styleElement = document.createElement('style');
    styleElement.appendChild(document.createTextNode(style));
    this.el.nativeElement.appendChild(styleElement);
  }

app.template.html

<span class="test">test</span>

stackblitz demo

关于css - 如何在 Angular 组件的样式标签中使用字符串插值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50189526/

相关文章:

c - 如果将 char* 传递给函数,是否会导致内存泄漏

angular - `value="{{todo.title} }"` 和 `[value]="todo.title"` 有什么区别?

angular - 如何修复 Angular 6 中的 'Google Maps JavaScript API error: InvalidKeyMapError' 错误?

html - purecss.io - 为什么两个 pure-u-1-2 元素堆叠在宽屏幕上?

css - 在IIS7中编译Sass文件

html - 将过滤器应用于部分背景图像

javascript - Angular 2,Node js 错误 npm 运行服务器 :prod

html - 这些链接的顶部不起作用,我怎样才能获得按钮内的链接?

java - 编写正则表达式来分割字符串

javascript - GAS 的 replaceText 和 javascript 的 String.replace