В сетке пользовательского интерфейса AngularJS я получаю объект JSON и привязываю его к сетке. Теперь я хочу фильтровать строки на основе нескольких условий из некоторых флажков.Фильтр-массив объекта в сетке UL AngularJs
Например, у меня есть 3 флажков времени:
10:00 - 12:00 -- checkbox
14:00 - 18:00 -- checkbox
20:00 - 23:00 -- checkbox
Если пользователь нажимает на 10:00 - 12:00
и 14:00 - 18:00
флажков, строка должна фильтруется на основе этих времен.
$scope.filterGrid = function(value) {
for (int i = 0; i <= $scope.gridApi.grid.columns[2].rows.entity.length(); i++) {
// I put one condition here as an example, but in my code all of the conditions
// are included
if ($scope.gridApi.grid.columns[2].rows.entity[i].time >= "14:00" &&
$scope.gridApi.grid.columns[2].rows.entity[i].time <= "18:00") {
$scope.gridApi.grid.columns[2].filters[0]={term:value};
}
}
};
В моем коде, я могу получить то, что объект содержит в интервалах времени, но когда я добавить объекты в сетку, я только когда-либо получить последний добавленный объект. Например, если у меня есть 4 объекта, сетка всегда показывает 4-й объект.
Я думаю, что вместо добавления объектов я переписываю их. Как я могу решить эту проблему?
Благодарим за помощь.
я думаю, что вы пытаетесь сравнить, если дата меньше или равна строке. afaik это невозможно –
Я получаю данные, моя проблема в том, когда я связываю n объект с $ scope.gridApi.grid.columns [2] .filters [0] = {term: value}; сетка всегда показывает последний объект – MrMVC
, можете ли вы попытаться использовать '$ scope.gridApi.grid.columns [2] .filters.add ({term: value});'? вы назначаете все элементы, соответствующие вашему if-предложению, первым в списке, поэтому всегда переопределяем предыдущее значение. Я бы предположил, что длина вашего списка равна 1. –