J'ai un ng-repeat fonctionnel, que je voudrais commander par date décroissante (articles les plus récents en premier).
Cependant, je n'arrive pas à le faire fonctionner. J'ai vérifié les devis, etc. J'ai essayé orderBy:'createdate':reverse
, orderBy:'article.createdate':reverse
, et orderBy:'data.blog.article.createdate':reverse
Aucun ne semble fonctionner.
Voici mon point de vue:
<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>
Voici un échantillon des données (converties en JSON à partir de XML à l'aide de 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"
}
]
}
}
L'argument reverse
doit être une valeur booléenne.
En supposant que l'inverse ne soit pas défini sur vrai ou faux quelque part dans votre contrôleur, vous devez remplacer
orderBy:'createdate':reverse
avec
orderBy:'createdate':true