2017-06-13 19 views
0

私はプロジェクトのために角のページネーションを実装することができましたが、最近作成された項目を最初に表示します。角のあるページ区切りの並べ替え項目

これらはすべて、私がそれらをソートしようとしているものです(Ruby on Rails APIの)「created_at」という値を持っています。 - 3、2、1
ページ2 - 図4、図5、図6
ページ3 -
ページ1~7

をIとして表示する必要があるのに対し次のようにそれが表示モーメントで


ページ1 - 7、6、5
ページ2 - 4,3、2
ページ1 - 3

HTML:
<div ng-repeat="post in postsIndex.all | startFrom: (currentPage - 1) * pageSize | limitTo: pageSize" class="post" >

app.js:

.angular 
.module('blog', ['ui.bootstrap']) 
.constant('API_URL', 'https://api-example-address.com') 
.filter('startFrom', function(){ 
return function(data, start){ 
    return data.slice(start); 
}; 
}); 

そして、この私のポストのためのコントローラ:

PostsIndexCtrl.$inject = ['Post', 'filterFilter', '$scope']; 
function PostsIndexCtrl(Post, filterFilter, $scope) { 
    const vm = this; 
    vm.all = Post.query(); 
    $scope.pageSize = 3; 
    $scope.currentPage = 1; 
} 

は、私はむしろちょうどそれらよりも、すべてのアイテムをソートするためにうまくできませんページに表示されます。 ng-repeatのページにロードされる前にそれらをすべて並べ替える方法はありますか?

ご協力いただきますようお願い申し上げます。

答えて

0

はそれを解決します! startFromプロパティの前に "orderBy"を変更するだけの場合。

はこれを使って修正:この代わりの

<div ng-repeat="post in postsIndex.all | orderBy:'created_at':true | startFrom: (currentPage - 1) * pageSize | limitTo: pageSize" class="post" > 

<div ng-repeat="post in postsIndex.all | startFrom: (currentPage - 1) * pageSize | limitTo: pageSize | orderBy:'created_at':true" class="post" > 
0

ソートはそうのようなデータ:

data.sort(function(a,b){ 
    // Turn your strings into dates, and then subtract them 
    // to get a value that is either negative, positive, or zero. 
    return new Date(b.date) - new Date(a.date); 
}); 
+0

あなたはapp.jsまたはポストのコントローラにこれを追加することを意味していますか?私はorderBy: "created_at"を試してみましたが、それはページ内の項目のみで動作し、データ内のすべての項目では機能しません。 –

関連する問題