Estou tentando descobrir como exibir todos os valores de identificador (linhas da tabela de materiais) se a caixa de seleção ALL estiver marcada. Minha configuração atual filtra as linhas com base em valores idênticos, mas a palavra-chave 'ALL' não é um valor real na tabela de materiais.
Acho que a correção precisaria acontecer aqui, ou seja, se TUDO estiver marcado, retorne [...dados]
if (
!this.identifierFilterValue ||
this.identifierFilterValue.length === 0
) {
console.log('No Identifier Filters are selected return full data');
return [...data];
}
Como testar: Quando a página carregar, clique no botão de pesquisa e alterne a caixa de seleção ALL algumas vezes. Quando estiver desmarcada, todas as linhas aparecerão. No entanto, quero que todas as linhas apareçam se ALL estiver marcado.
Aqui está meu stackblitz.
Podemos simplificar o código para apenas duas condições if que lidam com a condição de caixa de seleção exclusiva.
Se
ALL
selecionado, uma das caixas de seleção será marcada.Se uma das caixas de seleção estiver selecionada, então
ALL
selecionada.Descarte o
emitEvent: false
, porque as últimas atualizações de valor não estão refletidas novalueChanges
.Podemos escrever uma função que recalculará uma
identifierFilterValue
vez durante o carregamento e novamente a cada alteração de valor.Quando nenhum filtro for selecionado, certifique-se de retornar uma matriz vazia.
Por fim, podemos escrever uma condição para que, quando
ALL
for selecionado, retornemos todos os itens.Demonstração do Stackblitz