跨度元素上的动态 CSS 类 - 角度 4

Posted

技术标签:

【中文标题】跨度元素上的动态 CSS 类 - 角度 4【英文标题】:dynamic css class on a span element - angular 4 【发布时间】:2019-01-07 00:31:07 【问题描述】:

我在表格中有一个 span 元素。我想根据值动态更改 css 类。

这是我的 html 代码:

    <table>
          <thead>
               <tr>
                  <th>Fruits</th>
                  <th>Colors</th>
               </tr>
          </thead>
          <tbody>
          <tr *ngFor="let data of fruits>
             <td>data.fruits</td>
             <td>
             <span class="badge badge-default badge-success">data.color</span>
             </td>
           </tr>
          </tbody>
</table>

我想根据我获得的数据显示徽章颜色。例如,如果我变红了,我想将徽章类别更改为徽章危险。如果我得到绿色,我想将课程更改为徽章成功等等。

如何在 Angular 4 中实现这一点?

谢谢

【问题讨论】:

【参考方案1】:

1) 如果值来自对象中的枚举值怎么办 2) 有没有办法将所有 ngClass 逻辑放在一个组件方法中并执行以下操作:

<tbody>
    <tr *ngFor="let task of tasks">
        <td> task.title </td>
        <td> task.description </td>
        <td>
            <span class="label" [ngClass]=" getTaskLabel(task) " >task.taskstate</span>
        </td>
        <td>
    </tr>
</tbody>

【讨论】:

【参考方案2】:
<span class="badge badge-default badge-success" [ngStyle]="data.color =='red' ? 'class': 'badge badge-danger' : 'class': 'badge badge-success'"></span>

您可以使用 ngStyle 属性和三元运算符,就像我提供的一样

【讨论】:

他问的是怎么改class,而不是style 什么鬼,现在它甚至不是有效的语法 ***.com/questions/13813254/… 那是 angularJS,不是 angular 2+。也许这仍然可以在 angular2+ 中编译,但它是 not 标准语法。我不会在代码审查中通过它。 ngStyle 用于直接修改属性。 ngClass 用于修改类。不要越过溪流。【参考方案3】:

试试这个方法

<span class="badge badge-default" [ngClass]="
    'badge-success':data.color === 'green',
    'badge-warning':data.color === 'yellow',
    'badge-success-danger':data.color === 'red'
  ">
  </span>

【讨论】:

【参考方案4】:
<span class="badge badge-default" [ngClass]="'badge-danger': data.color === 'red', 'badge-success': data.color === 'green' ></span>

您可以在 Angular 中使用 ngClass 指令。参数为 'class-name':condition ,如果 condition 为真,则将 class-name 添加到元素中。

在此处阅读有关 ngClass 的更多信息:https://angular.io/api/common/NgClass

【讨论】:

以上是关于跨度元素上的动态 CSS 类 - 角度 4的主要内容,如果未能解决你的问题,请参考以下文章

角度材料缺少 css 类

如何在角度2中动态更改css类名

CSS值不适用于Angular 4中动态注入的html div元素

如何获取角度2中元素的属性值?

角度 4 - 从 firebase 动态读取数组

角度 8 CSS 查询上的角度材料