2015-02-04 2 views
0

Я пытаюсь фильтровать этот JSON, так это только показывает записи от текущего времени года:Фильтр по данным текущей даты/времени angularjs

JSON http://www.football-data.org/teams/354/fixtures/?callback=JSON_CALLBACK

HTML

<tr ng-repeat="fixture in fixtures.fixtures | greaterThan:fixture.date:date"> 
     <td>{{$index + 1}}</td> 
     <td>{{teamName(fixture.awayTeam)}}</td> 

КОНТРОЛЛЕР

.controller('fixturesController', function($scope, $routeParams, footballdataAPIservice) { 
     $scope.id = $routeParams.id; 
     $scope.fixtures = []; 
     $scope.date = new Date(); 

     footballdataAPIservice.getFixtures($scope.id).success(function (response) { 
      $scope.fixtures = response; 
     }); 


}); 

ФИЛЬТР

angular.module('PremierLeagueApp', []) 

    .filter('greaterThan', function() { 
      return function (actualDate, comparisonDate) { 
       return Date(actualDate) > Date(comparisonDate); 
      }; 
     }); 

Это не работает для меня, кто-нибудь видит, почему нет?

ответ

0

Возможно, проблема связана с сопоставлением даты.

Попробуйте изменить его на:

return actualDate > new Date(comparisonDate); 

потому что actualDate является объектом JS Дата тогда comparisonDate это просто строка из JSON.

0

Я думаю, что вы хотите вернуть дату, которая больше, а не фактическая дата больше, чем дата сравнения. Я прав?

Во всяком случае here проблема, подобная вашей. Работа с объектами даты решает проблему сравнения.

+0

да, записи с датами, которые позднее текущей даты – user1937021

Смежные вопросы