Ordem descendente por filtro de data em AngularJs

Então, o livro vem da API do resto e tem muitos leitores conectados. Eu quero pegar o leitor “recente”.

O campo created_at tem o valor que identifica o usuário como recente. Mas o código acima me dá o leitor mais antigo. Então a ordem precisa ser invertida? Existe alguma maneira de ter a sorting em ordem decrescente?

De acordo com a documentação, você pode usar o argumento reverse .

 filter:orderBy(array, expression[, reverse]); 

Altere seu filtro para:

 orderBy: 'created_at':true 

Você pode prefixar o argumento em orderBy com um ‘-‘ para ter ordem decrescente em vez de ascendente. Eu escreveria assim:

 

Isso também é indicado na documentação do filtro orderBy .

Talvez isso possa ser útil para alguém:

No meu caso, eu estava recebendo uma matriz de objects, cada um contendo uma data definida pelo Mongoose.

Eu usei:

 ng-repeat="comment in post.comments | orderBy : sortComment : true" 

E definiu a function:

 $scope.sortComment = function(comment) { var date = new Date(comment.created); return date; }; 

Isso funcionou para mim.

E um exemplo de código:

 
  • {{item.num}} :: {{item.desc}}

E o JavaScript:

 function FooController($scope) { $scope.items = [ {desc: 'a', num: 1}, {desc: 'b', num: 2}, {desc: 'c', num: 3}, ]; } 

Darei à você:

 3 :: c 2 :: b 1 :: a 

No JSFiddle: http://jsfiddle.net/agjqN/

Classificar por data

Isso ajudará a filtrar registros com data em ordem decrescente.

 $scope.logData = [ { event: 'Payment', created_at: '04/05/17 6:47 PM PST' }, { event: 'Payment', created_at: '04/06/17 12:47 AM PST' }, { event: 'Payment', created_at: '04/05/17 1:50 PM PST' } ]; 
{{logs.event}}

No meu caso, o orderBy é determinado por uma checkbox de seleção. Eu prefiro a resposta de Ludwig porque você pode definir a direção de sorting nas opções de seleção como tal:

  $scope.options = [ { label: 'Title', value: 'title' }, { label: 'Newest', value: '-publish_date' }, { label: 'Featured', value: '-featured' } ]; 

marcação:

  

veja amostras de w3schools: https://www.w3schools.com/angular/angular_filters.asp https://www.w3schools.com/angular/tryit.asp?filename=try_ng_filters_orderby_click

em seguida, adicione o sinalizador “reverso”:

     

Click the table headers to change the sorting order:

Name Country
{{x.name}} {{x.country}}