AngularJS - не может сортировать DateTime с помощью ngrepeat orderBy
После прочтения тонны поста на SO (post1, post2, post3 ...) и гугля, я все еще не могу понять, как сортировать даты внутри моего ng-повтора.
Вот что я сделал:
Ng-повтор в моем указателе.html:
<div ng-repeat="oneItem in groupesItems.ITEMS | orderBy:'-myDate'" class="item">
...
<div class="course-date">{[{oneItem.myDate | date:'dd MMMM yyyy hh : mm'}]}</div>
...
</div>
Я также читал, что мне нужно преобразовать mydate в объект Date, потому что Angular рассматривает его как строку. Итак, в моем угловом контроллере я сделал следующее:
($scope.groupesItems.ITEMS).forEach(function(data){
data.myDate = new Date(data.myDate);
});
Но ничего не работает !
Пожалуйста, Помогите ! что я упустил из виду ?
1 ответ:
Попробуйте использовать некоторую переменную
temp
черезgetTime
метод:<div ng-repeat="oneItem in groupesItems.ITEMS | orderBy:'-temp'" class="item"> <div class="course-date">{[{oneItem.myDate | date:'dd MMMM yyyy hh : mm'}]}</div> </div>
Javascript:
($scope.groupesItems.ITEMS).forEach(function(data){ data.temp = new Date(data.myDate).getTime(); });
Также вы можете попробовать
reverse
(true
послеorderBy:'myDate':
) без изменения javascript части:<div ng-repeat="oneItem in groupesItems.ITEMS | orderBy:'myDate':true" class="item"> <div class="course-date">{[{oneItem.myDate | date:'dd MMMM yyyy hh : mm'}]}</div> </div>