【发布时间】:2018-12-05 07:25:44
【问题描述】:
我可以使用复选框选择多个 ID,它们都被选中,但只有一个在 css 中处于活动状态。 我希望为我选择的每个 ID 更改样式。
这是我的代码。
selectedAvailableValueItemIds: string[] = [];
activeVI: '';
<div class="tab-item" fxLayout="row" [ngClass]="{active: activeVI === valueItem.id, 'tab-item': true}">
<div class="icon">
<app-checkbox [ngModel]="selectedAvailableValueItemIds.includes(valueItem.id)" (ngModelChange)="onSelectAvailableValueItem(valueItem)"></app-checkbox>
</div>
<div class="unAssignedVIs" [ngClass]="{active: activeVI === valueItem.id, 'unAssignedVIs': true}">
{{valueItem.name}}
</div>
<div class="ipUnAssignedVIs" [ngClass]="{active: activeVI === valueItem.id, 'ipUnAssignedVIs': true}">
{{Level[valueItem.level]}}
</div>
</div>
</div>
这是 TS
onSelectAvailableValueItem(valueItem: ValueItem) {
const index = this.selectedAvailableValueItemIds.indexOf(valueItem.id);
if (index < 0) {
this.selectedAvailableValueItemIds.push(valueItem.id);
this.activeVI = valueItem.id
} else {
this.selectedAvailableValueItemIds.splice(index, 1);
this.activeVI = '';
}
}
这是CSS
.unAssignedVIs {
-webkit-box-flex: 1;
width: calc(100% - 34em);
padding-left: 15px;
overflow: hidden;
white-space: nowrap;
background: #ebebeb;
&.active {
background: white;
}
}
【问题讨论】:
-
您是否忘记了 ' ' 处于活动状态? [ngClass]="{'active': activeVI === valueItem.id, 'tab-item': true}"
-
我没听明白吗?
-
将 active 替换为 'active':你错过了 ' '
-
@Eliseo 如果这不起作用,您还有其他想法吗
-
我写了一个答案。更改代码的理念,但我认为更具可读性
标签: html css angular typescript