Tengo una tabla de usuarios que actualmente está filtrada por grupos: a los usuarios se les asigna un grupo cuando se agregan. Tengo una función updateFilter que busca por el apellido de los usuarios. El problema que tengo actualmente es cuando se selecciona un grupo, se muestran los usuarios, pero cuando busco un nombre y elimino los caracteres buscados por otro nombre, la lista completa aparece cuando necesito que solo muestre y devuelva cualquier grupo. es seleccionado.
Búsqueda div -
<div class="col-4"> <input type='text' class="form-control w-200px" placeholder='Search by Last Name...' (keyup)='updateFilter($event)'/> </div>Función de filtro -
updateFilter(event) { const val = event.target.value.toLowerCase(); this.rows = this.temp.filter(function (d) { return d.lastName.toLowerCase().indexOf(val) !== -1 || !val; }); if (this.table) { this.table.offset = 0; } }filtro de grupo -
onGroupSelected($event) { const groupId = $event.target ? $event.target.value : $event; if (groupId === 'none') { this.rows = this.temp; } else { const groupUsers = this.groupUserMap.get(groupId); if (groupUsers) { this.rows = this.temp.filter((serviceUser) => groupUsers.includes(serviceUser.id)); } else { this.rows = []; } } // @ts-ignore this.userSelections = this.userSelections ? this.userSelections : {}; this.userSelections.groupId = groupId; localForage.setItem(this.username, this.userSelections); }