2014-06-04 8 views
28

Mam powtarzające się powtórzenia, które chciałbym zamówić w malejącej dacie (najpierw najnowsze pozycje).AngularJS ng-repeat orderData nie działa

Jednak nie mogę sprawić, żeby zadziałało. Mam podwójne sprawdzane cytowanie, itp. Próbowałem orderBy:'createdate':reverse, orderBy:'article.createdate':reverse i orderBy:'data.blog.article.createdate':reverse Nic nie działa.

To jest mój widok:

<article data-ng-if="article.id == post || post===NULL" data-ng-repeat="article in data.blog.article | orderBy:'createdate':reverse | slice:currentPage*pageSize:currentPage+1*pageSize"> 
    <h2 class="blog-post-title"> 
     <a href="#!/blog/{{article.id}}" title="Permalink to {{article.title.__cdata}}">{{article.title.__cdata}}</a> 
    </h2> 
    <span class="blog-post-meta">Posted on {{article.createdate | date:'MMMM dd, yyyy h:mma'}} by {{article.author}}</span> 
    <div class="blog-post-content" ng-bind-html="article.content.__cdata">{{article.content.__cdata}}</div> 
</article> 

Oto próbka danych (w przeliczeniu na JSON z XML przy użyciu X2JS):

{ 
    "blog": { 
     "article": [ 
      { 
       "id": "1", 
       "author": "eat-sleep-code", 
       "title": { 
        "__cdata": "The first article." 
       }, 
       "content": { 
        "__cdata": "\n  This is my first article in my test site.\n  " 
       }, 
       "createdate": "2014-05-09" 
      }, 
      { 
       "id": "2", 
       "author": "eat-sleep-code", 
       "title": { 
        "__cdata": "The second article." 
       }, 
       "content": { 
        "__cdata": "\n  This is my second article in my test site. This article's create date is actually earlier.\n  " 
       }, 
       "createdate": "2014-05-08" 
      } 
     ] 
    } 
} 
+1

kiedy powiedzieć nie działa, co się dzieje? Czy są jakieś błędy konsoli? Czy po prostu nie są we właściwej kolejności? –

+0

Brak błędów konsoli. Po prostu nie we właściwej kolejności. Oh, próbował również usunąć: odwrócony od orderBy po prostu, aby upewnić się, że nie było problemu. Bez zmiany. –

+0

Zobacz także tę dyskusję http://stackoverflow.com/questions/19876116/angular-orderby-date/25658846#25658846 – MDT

Odpowiedz

62

reverse argument powinien być wartością logiczną.

Zakładając, że nie zostały ustawione na odwrotnej prawdziwej lub fałszywej gdzieś w sterowniku, należy wymienić

orderBy:'createdate':reverse 

z

orderBy:'createdate':true 

Demo

orderBy docs

+0

Dzięki, uratowałem mój dzień –

+4

Dokumenty AngularJS w tym przypadku są dobrze zaciemnione. Nie ma przykładu prostego statycznego rewersu, o co tu pytamy. W przykładach, które dostarczają, zmienna demo jest nazywana taką samą jak słowo kluczowe ("reverse"), więc ludzie mylą te dwa. Doskonały! – ryascl

+1

możesz nawet użyć polecenia orderBy: '- createdate' teraz. –

Powiązane problemy