Angular:条件 class 用于 ngFor 中的重复项
Angular: conditional class for duplicates within ngFor
有密码
<li *ngFor="let color of colors;" [class.duplicate]="color.hex == colors[0].hex">{{color.hex}}<li>
根据颜色列表的颜色对象的十六进制属性填充十六进制代码列表。
因此,上面的 duplicate
class 被分配给十六进制与 第 0 项的十六进制相同的任何项目。
正确吗?
是否可以修改此代码,以便 duplicate
class 应用于任何重复项,而不仅仅是与 0th
项目
进行比较
您可能想要向您的控制器添加一个功能。我的 Angular2+ 生锈了,但效果如下:
<li *ngFor="let color of colors;" [class.duplicate]="findDuplicate(index, color)">{{color.hex}}<li>
function findDuplicate(index, color){
return colors.find((checkColor, checkIndex) => {
let isDuplicate = (checkIndex != index) && (color.hex == checkColor.hex);
return isDuplicate;
});
}
注意:checkIndex != index
是为了防止在当前颜色在数组中发现自己时将其标记为重复项。
有密码
<li *ngFor="let color of colors;" [class.duplicate]="color.hex == colors[0].hex">{{color.hex}}<li>
根据颜色列表的颜色对象的十六进制属性填充十六进制代码列表。
因此,上面的 duplicate
class 被分配给十六进制与 第 0 项的十六进制相同的任何项目。
正确吗?
是否可以修改此代码,以便 duplicate
class 应用于任何重复项,而不仅仅是与 0th
项目
您可能想要向您的控制器添加一个功能。我的 Angular2+ 生锈了,但效果如下:
<li *ngFor="let color of colors;" [class.duplicate]="findDuplicate(index, color)">{{color.hex}}<li>
function findDuplicate(index, color){
return colors.find((checkColor, checkIndex) => {
let isDuplicate = (checkIndex != index) && (color.hex == checkColor.hex);
return isDuplicate;
});
}
注意:checkIndex != index
是为了防止在当前颜色在数组中发现自己时将其标记为重复项。