首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >ngClass一个条件,另一个来自变量

ngClass一个条件,另一个来自变量
EN

Stack Overflow用户
提问于 2020-02-28 15:09:33
回答 3查看 190关注 0票数 1

我有以下数据结构:

代码语言:javascript
代码运行次数:0
运行
复制
  this.filters = [
  {
    key: 'filter1',
    active: true,
    class: 'filter1Class'
  },
  {
    key: 'filter2',
    active: false,
    class: 'filter2Class'
  },
  {
    key: 'filter3',
    active: true,
    class: 'filter3Class'
  }
];

这样,我想在html中创建一些图标,每个图标都有自己的css类,可以根据模型中的活动标志启用或不启用。

我的类非常简单,每个filterNClass都只是一个颜色,而我所应用的设置它的颜色是启用的,也不是一个不透明的值:

代码语言:javascript
代码运行次数:0
运行
复制
.disabled {
   opacity: 0.2;
}

.filter1Class {
   color: #1993a0;
}

.filter2Class {
   color: #720053;
}

.filter3Class {
   color: #000055;
}

这是我的html:

代码语言:javascript
代码运行次数:0
运行
复制
<div *ngFor="let filter of filters">
  <mat-icon [ngClass]="filter.class"
            [ngClass]="{disabled: !filter.active}">alarm_on
  </mat-icon>
</div>

这样,第二个ngClass就不能工作了,如果我删除了第一个,它就会工作,但是我不能同时管理两者。

怎么做呢?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2020-03-02 07:46:32

我最终解决了这个问题,包括一个div:

代码语言:javascript
代码运行次数:0
运行
复制
<div *ngFor="let filter of filters">
  <div [ngClass]="filter.class">
    <mat-icon 
        [ngClass]="{disabled: !filter.active}">alarm_on
    </mat-icon>
   </div>
</div>
票数 1
EN

Stack Overflow用户

发布于 2020-02-28 15:40:53

你可以这样写:

代码语言:javascript
代码运行次数:0
运行
复制
<div *ngFor="let filter of filters">
  <mat-icon [ngClass]="{disabled: !filter.active,filter.class }">alarm_on
  </mat-icon>
</div>
票数 0
EN

Stack Overflow用户

发布于 2020-02-28 15:50:11

您将需要使用对象数组语法,并将所有检查包含在相同ngclass属性下,如下所示:

代码语言:javascript
代码运行次数:0
运行
复制
<div *ngFor="let filter of filters">
  <mat-icon [ngClass]="{filter.class : true, 'disabled' : !filter.active }">alarm_on
  </mat-icon>
</div>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60454435

复制
相关文章

相似问题

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