2016-12-31 5 views
0

どのように日付文字列の角順orderByですか? ng-repeatをソートするためにorderByを使用しようとしています。 現在、私たちのデータは機能していないフィルタに対してvalueListを使用しています。どのように日付文字列を持つ角度orderBy?

「matchDate」フィールドが文字列であるため、日付ではなく英数字でソートされていると思います。 私の質問は最高の適切な順序付け

$scope.valueList= 
[ 
    { 
     "_id" : ObjectId("5862c276d9913952fa80aa11"), 
     "matchDate" : "31 December, 2016", 
     "scoreStatus" : "OPEN" 
    }, 
    { 
     "_id" : ObjectId("58679badd991390f83fbb994"), 
     "matchDate" : "30 December, 2016", 
     "scoreStatus" : "CLOSE" 
    }, 
    { 
     "_id" : ObjectId("58679badd991390f83fbb994"), 
     "matchDate" : "28 December, 2016", 
     "scoreStatus" : "OPEN" 
    } 
] 

のために日にこのフィールドを変換する方法であり、これは、この例のように、日付で並べ替えることができ、私のhtml

<div ng-repeat="eachValue in valueList | orderBy: 'matchDate'"> 
    {{eachValue.matchDate}} 
</div> 
+0

を持っている場合は、moment.jsライブラリ

<div ng-repeat="eachValue in valueList | orderByDate> {{eachValue.matchDate}} </div> 

を使用することができます - あなたは後にしている何本ですか? http://stackoverflow.com/questions/25515431/ng-repeat-filtering-data-by-date-range –

答えて

0

です:

<!DOCTYPE html> 
<html lang="en-US"> 
    <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js"></script> 
    <body> 
    <script type="text/javascript"> 
     angular.module('app',[]).controller('test',function($scope){ 
     $scope.valueList=[{ 
     "_id" : "5862c276d9913952fa80aa11", 
     "matchDate" : "31 December, 2016", 
     "scoreStatus" : "OPEN" 
     },{ 
     "_id" : "58679badd991390f83fbb994", 
     "matchDate" : "30 December, 2016", 
     "scoreStatus" : "CLOSE" 
     },{ 
     "_id" : "58679badd991390f83fbb994", 
     "matchDate" : "28 December, 2016", 
     "scoreStatus" : "OPEN" 
    }] 

     $scope.myValueFunction = function(date) { 
      return new Date(date) 
     }; 
    }) 
    </script> 
    <div ng-app="app" ng-controller="test"> 
     <div ng-repeat="eachValue in valueList | orderBy: myValueFunction"> 
     {{eachValue.matchDate}} 
     </div> 
    </div> 
    </body> 
</html> 
+0

日付がソートされていない場合は動作しません –

0

このようなカスタムフィルタを使用することをお勧めします。

app.filter('orderByDate', function() { 
    return function(items) { 
    // write your logic for order by date 
    // then return results as items items= results; 
    return items; 
    }; 
}); 
ORDERBY日の書き込みロジック用

私は質問を誤解ないよ場合は、問題の接触

+0

どうすればこの日付形式を瞬時に変換できますか? –

+0

試してみてくださいモーメント( "2012年12月30日")。 –

関連する問題