angular 9: ngFor 中 ngClass 的多个条件
angular 9: Multiple conditions on ngClass inside a ngFor
我在尝试使用 angular 在我的页面中打印典型的星级评级小部件时遇到了一些问题。可能会有一种更简单的方法来使用 css 来展示它们,但现在我想通过代码来完成。
<i *ngFor="let star of this.stars" [ngClass]="{
'score__star fas fa-star': star === 'full',
'score__star fas fa-star-half-alt': star === 'half',
'score__star far fa-star': star === 'empty'
}"></i>
这是小部件的代码,这是星星数组的内容:
(5) ["full", "full", "half", "empty", "empty"]
我不确定为什么,chrome 正确绘制了前 2 个,但没有正确绘制其他的。从我在调试器中看到的情况来看,class 的某些部分被遗漏了...
<i _ngcontent-lqd-c56="" ng-reflect-ng-class="[object Object]" class=""></i>
<i _ngcontent-lqd-c56="" ng-reflect-ng-class="[object Object]" class=""></i>
<i _ngcontent-lqd-c56="" ng-reflect-ng-class="[object Object]" class="fas fa-star-half-alt"></i>
<i _ngcontent-lqd-c56="" ng-reflect-ng-class="[object Object]" class="score__star far fa-star"></i>
<i _ngcontent-lqd-c56="" ng-reflect-ng-class="[object Object]" class="score__star far fa-star"></i>
知道我错过了什么吗?我也尝试混合 class 和 ngClass 来拆分样式的公共部分,但我遇到了同样的问题。
非常感谢!
我看到了这个问题的一种解决方法。
你能改变你的类吗,例如:
getClasses(star) {
return {
'full' : star === 'full',
'half' : star === 'half',
'empty' : star === 'empty'
}}
我也不确定如果你知道这个但是你可以将方法传递给 ngClass 指令
<i *ngFor="let star of stars" [ngClass]="getClasses(star)">
{{star}}
</i>
我在尝试使用 angular 在我的页面中打印典型的星级评级小部件时遇到了一些问题。可能会有一种更简单的方法来使用 css 来展示它们,但现在我想通过代码来完成。
<i *ngFor="let star of this.stars" [ngClass]="{
'score__star fas fa-star': star === 'full',
'score__star fas fa-star-half-alt': star === 'half',
'score__star far fa-star': star === 'empty'
}"></i>
这是小部件的代码,这是星星数组的内容:
(5) ["full", "full", "half", "empty", "empty"]
我不确定为什么,chrome 正确绘制了前 2 个,但没有正确绘制其他的。从我在调试器中看到的情况来看,class 的某些部分被遗漏了...
<i _ngcontent-lqd-c56="" ng-reflect-ng-class="[object Object]" class=""></i>
<i _ngcontent-lqd-c56="" ng-reflect-ng-class="[object Object]" class=""></i>
<i _ngcontent-lqd-c56="" ng-reflect-ng-class="[object Object]" class="fas fa-star-half-alt"></i>
<i _ngcontent-lqd-c56="" ng-reflect-ng-class="[object Object]" class="score__star far fa-star"></i>
<i _ngcontent-lqd-c56="" ng-reflect-ng-class="[object Object]" class="score__star far fa-star"></i>
知道我错过了什么吗?我也尝试混合 class 和 ngClass 来拆分样式的公共部分,但我遇到了同样的问题。
非常感谢!
我看到了这个问题的一种解决方法。 你能改变你的类吗,例如:
getClasses(star) {
return {
'full' : star === 'full',
'half' : star === 'half',
'empty' : star === 'empty'
}}
我也不确定如果你知道这个但是你可以将方法传递给 ngClass 指令
<i *ngFor="let star of stars" [ngClass]="getClasses(star)">
{{star}}
</i>