首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >角度: NgClass -分组条件

角度: NgClass -分组条件
EN

Stack Overflow用户
提问于 2022-06-28 15:18:00
回答 2查看 55关注 0票数 1

有办法简化这个ngClass吗?

  • edit?-这个工作fine
  • value === -这是一个子组件。两个父组件中的每一个都将value属性作为@输入向下传递。子组件1具有released属性。子组件2没有released属性。
  • 如果valuevalue1,而released属性是true,则不添加任何类。但是,如果released属性是false添加一个名为false value is value2的类,则始终添加class-3,因为没有released属性。

下面的工作,但它觉得它可以流线型。

代码语言:javascript
复制
<div [ngClass]="[
 edit ? 'class-1' : 'class-2',
 value === 'value1' && released ? '' : 'class-3',
 value === 'value2' ? 'class-3' : ''
]">
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-06-28 16:29:39

你可以通过转到课堂上来优化它的一部分,它要短得多,也很简洁:

代码语言:javascript
复制
<div [class.class-3]="(value === 'value1' && !released) || value === 'value2'"
... /the rest of the ngClass for edit
</div>

或者把它都保存在ngClasse中。它也可以缩短:

代码语言:javascript
复制
<div [ngClass]="[
 edit ? 'class-1' : 'class-2',
 released ? value != 'value1' || value==='value2'? : 'class-3' : ''
]">
票数 1
EN

Stack Overflow用户

发布于 2022-06-28 16:07:20

你真的有一个复杂的情况,这是我能想到的最好的:

代码语言:javascript
复制
<div
  [ngClass]="{
    'class-1': edit,
    'class-2': !edit,
    'class-3': value === 'value2' || (value === 'value1' && !released)
  }"
></div>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72789122

复制
相关文章

相似问题

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