2015-08-02 3 views
1

У меня есть массив объектов в моем приложении «Угловое», и у каждого есть «готовое» поле, которое является меткой времени. Я хочу подсчитать количество объектов, где готовая метка времени находится раньше текущего времени. Как мне это сделать?Фильтр и счетчик массива в контроллере angular.js

у меня есть:

$scope.getDatetime = new Date(); 
$scope.numberReady = $filter('filter')($scope.array, {ready < $scope.getDatetime}).length; 

Очевидно, что я не могу использовать ready < $scope.getDatetime, но, логически говоря, это то, что я хочу сделать.

ответ

2

Вы можете использовать чистый метод ES5 фильтра, нет необходимости Угловая здесь:

$scope.getDatetime = new Date(); 
$scope.numberReady = $scope.array.filter(function(obj) { 
    return obj.ready < $scope.getDatetime; 
}).length; 

... хотя можно использовать угловую фильтр здесь:

$scope.getDatetime = new Date(); 
$scope.numberReady = $filter('filter')($scope.array, function(obj) { 
    return obj.ready < $scope.getDatetime; 
}).length; 

, но так как это просто обертка вокруг родной вещи, это не идеально в этом случае.

+0

Спасибо, это работает. У меня на самом деле проблема с сравнением времени, но потому что новая дата() при печати на консоли дает мне «Sun Aug 02 2015 13:11:45 GMT + 0300 (EEST)», но даты, поступающие из моего api, формат «2015-07-26T21: 41: 01.938 + 03: 00». Любая идея, как сделать их сопоставимыми? – Finnjon

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