Continuando a série de melhorias de UX no Angular 2 (ou superior), hoje abordarei um item fundamental, que ajuda muito o usuário quando está fazendo uma consulta, a ordenação.
A ordenação permite organizar a forma de exibição dos dados de uma determinada tabela, seja em ordem crescente, decrescente, etc.
Para fazer nossa ordenação, usaremos o ngx-order-pipe, então em seu terminal, na pasta do seu projeto Angular, execute o comando:
1 | npm install ngx-order-pipe --save |
Assim como fizemos no post sobre como fazer filtro na tabela do Angular e como criar paginação na tabela do Angular, devemos adicionar os módulos desta dependência dentro do nosso arquivo app.module
, então nosso arquivo ficaria algo parecido com:
1 |
|
Alteração na tabela
Feito isso, podemos agora utilizar as funcionalidades do módulo da ordenação!
Vamos precisar alterar nossas tags tr
e td
. Primeiramente, iremos adicionar o pipe orderBy no tr, da seguinte forma:
1 | <!-- ... Código da table ... --> |
Mas só isso ainda não funcionará, precisamos agora adicionar no nosso arquivo typescript do componente as opções de ordenação:
1 | export class AppComponent { |
Agora voltando ao nosso HTML, iremos adicionar a opção para o usuário clicar, então iremos adicionar uma nova configuração no header da nossa tabela, isto é, onde temos o título das colunas, como nome, endereço, etc.
1 | <!-- ... Código da table ... --> |
Feito isso, já está funcionando, mas falta um pequeno detalhe, como o usuário vai saber se está ordenado e de qual forma está? Precisamos adicionar indicadores na tabela para isso!
Vamos adicionar com um simples caractere, mas você pode alterar para algum ícone de alguma biblioteca, fica a seu gosto!
1 | <thead> |
E para finalizar, vamos alterar o estilo do nosso ponteiro, para quando o usuário passar o mouse em cima da th
aparecer a famosa mãozinha! :P
Para isto, só adicionar o seguinte CSS:
1 | thead>tr>th { |
Com este post, terminamos a série de otimização na experiência de usuário em nossas tabelas!
Não deixe de conferir os outros posts sobre como fazer filtro na tabela do Angular e como criar paginação na tabela do Angular!