Позволяет ли angular-ui-grid изменять фильтр в определенной ячейке?

#angular-ui-grid

#angular-ui-grid

Вопрос:

Я нашел много полезной информации о фильтрах ячеек angular-ui-grid, но, похоже, не могу найти ответ на свою конкретную проблему. В принципе, у меня настроена сетка с двумя столбцами:

Столбец A — это выпадающий список редактируемых ячеек, в котором вы можете выбрать два варианта: «деньги» или «процент». Столбец B — это числовой ввод, отображающий значение.

В моем приложении есть два фильтра: «валюта» и «процент». Если я настрою columnDefs для любого из этих фильтров, то в столбце B будут отображаться все значения в этом столбце либо в виде значения валюты, либо в процентах.

Что мне нужно сделать, так это сделать так, чтобы фильтр применялся к столбцу B на основе настройки столбца A, поэтому в итоге я получаю следующее:

 Value Type               Value
---------------------------------------
Money                    $100.00
Percentage                100%
  

У меня есть некоторый код, чтобы в принципе проверить это после редактирования:

         $scope.gridApi.edit.on.afterCellEdit($scope, function(rowData) {
                var row = _.indexOf($scope.items, rowData);
                if (rowData['valueType'] == 'percentage') {
                    // Apply percentage filter to the value cell for this row
                } else {
                   // Apply currency filter to the value cell for this row
                }
                $scope.gridApi.core.refresh();
        });
  

… Я просто не уверен, как применить фильтр к отдельным ячейкам. Любые рекомендации были бы оценены!

Ответ №1:

Если у кого-либо еще когда-либо возникал такой же вопрос, я справился с этим, создав фильтр, который принимал объект row в качестве аргумента, затем применил пользовательские фильтры внутри этого нового фильтра на основе значений объекта.