【问题标题】:Changing style class attributes dynamically in Angular 6在 Angular 6 中动态更改样式类属性
【发布时间】:2019-03-14 19:18:56
【问题描述】:

我在 Angular 6 中有以下代码:

<div [innerHtml]="content"></div>

我从服务调用(即外部库)中获得了 content 变量。它包含类名,例如p1

var content = '<p class="p1">This is some text</p>';

现在,我正在从 AngularJS 迁移这段代码。在 AngularJS 中,我曾经在指令模板中操作像 p1 这样的 css 类:

.p1 {
   font-family: {{theFamily}};
}

但是当我尝试在 Angular 6 组件样式表中做同样的事情时,我得到了Module build failed: Syntax Error

任何想法如何获得相同的结果?

更新 请看这个StackBlitz,它不起作用,因为它不接受css中的{{ }}。这在 AngularJS 中有效。

【问题讨论】:

    标签: angular


    【解决方案1】:

    您不能在组件 scss 中使用角度绑定。它应该只在模板中使用。您可以使用 [ngStyle] 调用组件函数并将 css 属性作为对象返回。

    模板:

    <div [ngStyle]="getStyles()">This is test</div>
    
    getStyles(){
        let styles = {
        'background-color': this.isExpired ? 'red' : 'transparent',
        'font-weight': this.isImportant ? 'bold' : 'normal'
      };
      return styles;
    }
    

    【讨论】:

    • 这不能回答我的问题,因为您正在更改 HTML 标记而不是使用类。我需要保持 HTML 原样并在外部更改类。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-02-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-17
    相关资源
    最近更新 更多