Json 带有自定义筛选器的AngularJS列表排序不正确
我试图找出为什么我的angularjS“最新即将发生的事件”列表没有正确显示最新即将发生的事件。这个顺序似乎不合适 过时列表:Json 带有自定义筛选器的AngularJS列表排序不正确,json,angularjs,Json,Angularjs,我试图找出为什么我的angularjS“最新即将发生的事件”列表没有正确显示最新即将发生的事件。这个顺序似乎不合适 过时列表: Upcoming events: Repeating Event 2015-07-16 Meeting 2015-07-26 Happy Hour 2015-07-19 Meeting at Google 2015-07-15 以下是我的观点: <body ng-app="listApp"> <div class="container" n
Upcoming events:
Repeating Event
2015-07-16
Meeting
2015-07-26
Happy Hour
2015-07-19
Meeting at Google
2015-07-15
以下是我的观点:
<body ng-app="listApp">
<div class="container" ng-controller="EventController">
<h3>Upcoming events:</h3>
<ul ng-repeat="event in events | upcomingEvents | limitTo: 4">
<li>{{ event.title }}</li>
<li>{{ event.start }}</li>
</ul>
var app = angular.module('listApp', []);
app.controller('EventController', function($scope, $http){
$http.get('http://www.ogmda.com/sandbox/fullcalendar/demos/json/events.json').success(function(data) {
$scope.events = data;
})
});
app.filter('upcomingEvents', function () {
return function (input) {
var upcomingEvents = [];
if(!input){
return upcomingEvents;
}
upcomingEvents = input.filter(function (data) {
var currentDate = new Date();
console.log(new Date(data.start));
if ((new Date(data.start) - currentDate) >= 0) {
return true;
} else {
return false;
}
});
upcomingEvents.sort(function (a, b) {
return a.start - b.start;
});
return upcomingEvents;
};
});
app.$inject = ['$scope'];
JSON提要如下所示:
[
{
"title": "All Day Event",
"start": "2015-07-11"
},
{
"title": "Long Event",
"start": "2015-07-07",
"end": "2015-07-10"
},
{
"id": "999",
"title": "Repeating Event",
"start": "2015-07-09"
},
{
"id": "999",
"title": "Repeating Event",
"start": "2015-07-16"
},
{
"title": "Meeting",
"start": "2015-07-12"
},
{
"title": "Conference",
"start": "2015-07-11",
"end": "2015-07-13"
},
{
"title": "Meeting",
"start": "2015-07-26",
"end": "2015-07-30"
},
{
"title": "Lunch",
"start": "2015-07-12"
},
{
"title": "Happy Hour",
"start": "2015-07-19"
},
{
"title": "Dinner",
"start": "2015-07-12"
},
{
"title": "Birthday Party",
"start": "2015-07-04"
},
{
"title": "Meeting at Google",
"url": "http://google.com/",
"start": "2015-07-15"
}
]
有什么建议可以帮我解决这个问题吗?谢谢 如果要按开始日期降序筛选项目,可以使用orderBy:
<ul ng-repeat="event in events | upcomingEvents |orderBy:'-start'| limitTo: 4">
<li>{{ event.title }}</li>
<li>{{ event.start }}</li>
</ul>
- {{event.title}}
- {{event.start}
需要根据当前日期执行此操作。因此,如果今天是7月13日,那么最新显示的事件应该是7月14日、15日等等。我误解了你的信息。效果很好。谢谢