ag-grid enterprise Set Filter «(пробелы)» -привязка не работает

#angular #ag-grid

#angular #ag-grid

Вопрос:

Чтобы сэкономить работу пользователя, я сохраняю несколько фильтров столбцов в sessionstorage. Недавно был добавлен фильтр Enterprise Set, и он работает почти нормально. Единственная проблема заключается в том, что пустые столбцы не берутся, когда я добавляю их обратно в фильтр с помощью setFilterModel() из api.

Я сделал следующее:

Пользователь добавляет новый Установленный фильтр и выбирает (пробелы) в качестве значения. Фильтр был изменен, и было запущено событие (filterChanged). Я получаю текущий фильтр из API с помощью api.getFilterModel() и сохраняю результат в виде строки JSON с помощью JSON.stringify(currentFilter) в хранилище сеансов.

 getFilter() {
const currentFilter = this.gridOptions.api.getFilterModel();
if (Object.keys(currentFilter).length !== 0) {
  sessionStorage.setItem('filterKey', JSON.stringify(currentFilter));
 }
}
  

Если пользователь снова откроет страницу, фильтр должен быть заменен снова.

 setFilter() {
const currentFilter = sessionStorage.getItem('filterKey');
if (currentFilter) {
  const filter = JSON.parse(currentFilter);
  this.gridOptions.api.setFilterModel(filter);
  this.gridOptions.api.onFilterChanged();
 } 
}
  

Этот метод был вызван событием (rowDataChanged).

Это работает с текстом, датой, числом и установленным фильтром, за исключением пустых значений. Если выбраны пустые значения, я получаю следующую модель:

 {
"column" : "nameOfColumn": {
    "filterType": "set",
    "values": [null]
  }
}
  

Но привязка к нулю не работает, если я применяю фильтр. Я знаю, что JSON.parse не добавляет null в массив, поэтому я попытался добавить null вручную, чтобы получить тот же результат.

Как я могу сохранить и применить нулевые значения в заданном фильтре?

Спасибо!

Комментарии:

1. Обнаружено, что это окончательно исправлено в последней версии AG Grid Enterprise 27.0.1