Boa noite.
Tenho uma dúvida, sobre a ordenação de dados do storage.
Criei uma API que retorna alguns dados (id, dados em geral, data e etc), quando eu carrego os dados eles vem ordenados corretamente pela data e faço a inserção dos mesmos no storage.
Ao recuperar esses dados para listá-los na view:
return this._storage.forEach((value, key, index) => {
if (key.indexOf('fatura') >= 0) {
let fatura = new Fatura(
value.ordem,
value.idestab,
value.documento,
value.parcela,
value.serie,
value.valor,
value.vencimento,
value.desconto);
console.log(fatura);
faturas.push(fatura);
}
})
.then(() => faturas);
Os registros não vem na ordem, que foram inseridos.
Minha dúvida são duas na verdade:
1 - Como ele trata a ordenação? É pela key que eu defini no momento da gravação?
private _getKey(fatura: Fatura) {
return "fatura" + fatura.idestab + fatura.documento + fatura.parcela + fatura.serie;
}
2 - Após uma série de tentativas decidi criar um campo ordem e estou enviando o índice dos registros que gravo junto com o que veio da API, mesmo assim a ordenação funciona baseada em String, ou seja: 1, 10, 11, 12..., 19, 2, 20, 21... Como eu poderia ordenar e como funciona isso?
Eu li esta documentação do Angular: https://angular.io/guide/pipes Mas eles mesmos não recomendam utilização de Pipes.
Obrigado desde já.