Я работаю над фильтром содержимого таблицы на основе двух выбранных дат. Он фильтрует дату, но результат неверен. dateRange Filter записывается в controller.
ProductionController
angular.module('app').controller('ProductionController', ['$scope','$state','ProductionService','FarmerRepository', function(scope,state,ProductionService,FarmerRepository) { fetchAllUsers(); function fetchAllUsers() { ProductionService.fetchAllUsers().then(function(d) { produceList = d; scope.produceList = produceList; }, function(errResponse) { console.error('Error while fetching produceList'); }); }; //this is custom filter .filter('dateRange', function() { return function(produceList, fromDate, toDate) { if(fromDate && toDate){ var filtered = []; angular.forEach(produceList, function(items) { if (items.produceDate > Date.parse(fromDate) && items.produceDate < Date.parse(toDate)) filtered.push(items); }); return filtered; } else return produceList; }})
view.html
Изменить: порядок скриптов
Пожалуйста, проверьте преобразованные даты value.produceDate при преобразовании в формат номера, который он не лежит между от и до date.hence здесь фильтрация не происходит.
angular.module('app', ['720kb.datepicker']).controller('MyController', function ($scope) { var formatStr = 'DD/MM/YYYY'; $scope.from_date = moment("2017-05-02").format(formatStr); $scope.to_date = moment("2017-05-10").format(formatStr); $scope.produceList = [{ "itemName": "Mango", "produceDate": 1493360722000, "produceId": 90 }, { "itemName": "Banana", "produceDate": 1493290754000, "produceId": 89 }, { "itemName": "Grapes", "lastDateForBid": 1493510400000, "produceDate": 1493099760000, "produceId": 83 }, { "itemName": "Apple", "produceDate": 1490615680000, "produceId": 66 }, { "itemName": "Grapes", "produceDate": 1490615515000, "produceId": 65 }] }) .filter('dateRange', function() { var formatStr = 'DD/MM/YYYY'; return function(produceList, fromDate, toDate) { if(fromDate && toDate){ var filtered = []; angular.forEach(produceList, function(items) { if (items.produceDate > Date.parse(moment(fromDate, formatStr)) && items.produceDate < Date.parse(moment(toDate, formatStr))) filtered.push(items); }); return filtered; } else return produceList; }})
fromDate: toDate: search:
- {{item | json}}
Solutions Collecting From Web of "Неисправность в данных таблицы фильтров между двумя выбранными датами с использованием angularjs"
Я внес некоторые изменения в ваш .filter
и использовал эту директиву .filter
:
angular.module('app', ['720kb.datepicker']).controller('MyController', function ($scope) { $scope.from_date = '02/05/2017'; $scope.to_date = '10/05/2017'; $scope.produceList = [ {itemName:'Tom', produceDate: Date.parse(new Date(2017, 5, 9))}, {itemName:'Sam', produceDate: Date.parse(new Date(2017, 5, 10))}, {itemName:'Paul', produceDate: Date.parse(new Date(2017, 5, 11))}, {itemName:'Henry', produceDate: Date.parse(new Date(2017, 5, 12))}, ] }).filter('dateRange', function() { var fromStr2Date = function(date){ var days = +date.substr(0, 2); var month = +date.substr(3, 2); var year = +date.substr(6, 4); return new Date(year, month, days); } return function(produceList, fromDate, toDate) { if(fromDate && toDate){ var filtered = []; angular.forEach(produceList, function(items) { if (items.produceDate > Date.parse(fromStr2Date(fromDate)) && items.produceDate < Date.parse(fromStr2Date(toDate))) filtered.push(items); }); return filtered; } else return produceList; }})
fromDate: toDate: search:
- {{item | json}}
Вот ваше требуемое решение. Я тоже использовал момент js, но использовал довольно простой подход, сравнивая времена epoch
в соответствии с данными, данными вами.
< !DOCTYPE html> fromDate: toDate: search:
- {{item | json}}
-
Почему высота увеличивается с меньшим размером шрифта?
-
Возможно ли автоматическое форматирование кода в Dreamweaver?
-
Воспроизведение аудио в HTML
-
Как установить выбранное значение windows выбора HTML с помощью PHP
-
Удалите лишние строки после Html.fromHtml ()
-
Поддержка HTML – арабский
-
Исправлен зазор между столбцами CSS
-
Получить значения атрибутов из выбранного варианта select2
-
Dropzone – Ошибка при открытии: нет URL-адреса
-
Как запустить анимацию CSS3 до конца, если селектор больше не подходит?
-
Можно ли остановить динамически вставленный тег скрипта?
-
Как вертикально центрировать содержимое дочерних div внутри родительского div в жидком макете
-
Вставить div поверх вспышки в IE
-
Куки-массив в javascript
-
Как получить внутреннее текстовое значение HTML-тега с помощью BeautifulSoup bs4?