Your question may relate to the multiple select option for table entries.
In this case, you can store the selected objects in a set.
public selectedRowSet: Set<MyObject> = new Set();
, , , .
public setSelectedRow(obj: MyObject, event: MouseEvent) {
if(!event.shiftKey) {
selectedRowSet.clear();
}
selectedRowSet.add(obj);
}
, , .
public isRowSelected(obj: MyObject): boolean
{
return selectedRowSet.has(obj);
}
:
<tr *ngFor="let obj of myObjectCollection"
[class.someCssClass]="isRowSelected(obj)"
(click)="setSelectedRow(obj, $event);">
...
</tr>
, :
, - .
public setSelectedRow(bo: Bo, event: MouseEvent) {
const add = event.shiftKey || event.ctrlKey || event.metaKey;
if (!add) {
this.selectedRowSet.clear();
this.selectedRowSet.add(bo);
return;
}
if (this.selectedRowSet.has(bo)) {
this.selectedRowSet.delete(bo);
}
else {
this.selectedRowSet.add(bo);
}
}