首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在ngFor循环中重复应用条件?

如何在ngFor循环中重复应用条件?
EN

Stack Overflow用户
提问于 2018-05-29 19:40:28
回答 1查看 930关注 0票数 1

我有一个相当简单的用例;一个表格式的用户列表,每个用户都可能是活动的或不活动的。根据行样式的不同,行的样式会有所不同。在多个place中应用条件样式:

代码语言:javascript
复制
<tr *ngFor="let user of users" [ngClass]="{'not-active': user.status !== 'ACT'}">
<td>{{user.username}}</td>
<td>{{user.status}}</td>
<td>
  <button [disabled]="user.status !== 'ACT'">Edit</button>
  <button [disabled]="user.status === 'ACT'">Activate</button></a>
</td>

显然,这不是很好,因为我必须拼写我的条件逻辑三次。如果我能这样写会更好:

代码语言:javascript
复制
<tr *ngFor="let user of users; let isActive = user.status === 'ACT';"
        [ngClass]="{'not-active': !isActive}">
<td>{{user.username}}</td>
<td>{{user.status}}</td>
<td>
  <button [disabled]="!isActive">Edit</button>
  <button [disabled]="isActive">Activate</button></a>
</td>

然而,我从this post和其他人的阅读中了解到,这目前是不可能的。

从上面的帖子中提出的解决方法是创建一个包含HTML模板的组件(对于表行?)然后在component类中执行逻辑。对于一个相对简单的需求,这似乎是一个相当大的开销……

因此,在深入讨论之前,我想问一下,这是否真的是解决此类问题的规范解决方案?

作为对一条评论的回应,我在stackblitz上实现了一个简单的问题示例(我以前没有使用过这个……你能看到我的代码库吗?)。

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50583474

复制
相关文章

相似问题

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