简化使用 ngFor 的 ngClass 条件
simplify ngClass conditionals that uses ngFor
我有一个包含 5 个字符串值的数组
兴奋、快乐、中性、悲伤、愤怒
我正在使用 ngClass 和 ngFor 来简化 html,因此我不必为每个值重复 5 次所有内容。
问题是 ngClass 语句非常庞大,我找不到适当的方法来简化它。有什么办法可以缩短它吗?
<mat-icon *ngFor="let smiley of smileys" svgIcon="emote_{{smiley}}"
[ngClass]="{ happy: smiley === 'happy', sad: smiley === 'sad', neutral: smiley === 'neutral', angry: smiley === 'angry', excited: smiley === 'excited'}" (click)="selected(smiley, $event)"></mat-icon>
提前致谢!
使笑脸数组内容更智能,将具体的 class 封装在笑脸中,并将其用于赋值给 class 解析。
你可以简单地写
[ngClass]="smiley"
把这部分放到一个函数中 happy: smiley === 'happy', sad: smiley === 'sad', neutral: smiley === 'neutral', angry: smiley === 'angry',兴奋:笑脸 === 'excited',可能是一个开关或 if 子句和 return css-class-name 从那里。
然后你可以这样写:
[ngClass]="determineHappiness()
有一个问题解决了类似的问题:check this one out
我有一个包含 5 个字符串值的数组 兴奋、快乐、中性、悲伤、愤怒
我正在使用 ngClass 和 ngFor 来简化 html,因此我不必为每个值重复 5 次所有内容。
问题是 ngClass 语句非常庞大,我找不到适当的方法来简化它。有什么办法可以缩短它吗?
<mat-icon *ngFor="let smiley of smileys" svgIcon="emote_{{smiley}}"
[ngClass]="{ happy: smiley === 'happy', sad: smiley === 'sad', neutral: smiley === 'neutral', angry: smiley === 'angry', excited: smiley === 'excited'}" (click)="selected(smiley, $event)"></mat-icon>
提前致谢!
使笑脸数组内容更智能,将具体的 class 封装在笑脸中,并将其用于赋值给 class 解析。
你可以简单地写
[ngClass]="smiley"
把这部分放到一个函数中 happy: smiley === 'happy', sad: smiley === 'sad', neutral: smiley === 'neutral', angry: smiley === 'angry',兴奋:笑脸 === 'excited',可能是一个开关或 if 子句和 return css-class-name 从那里。
然后你可以这样写:
[ngClass]="determineHappiness()
有一个问题解决了类似的问题:check this one out