AngularJS ui-grid повторно использует пользовательский фильтр - PullRequest
0 голосов
/ 26 июня 2018

У меня есть базовая сетка с парой столбцов, которые являются диапазонами, то есть 10-50, 0-9 и т. Д., И я написал специальный фильтр для одного из columnDefs;

filter: {
  condition: function(searchTerm, cellValue) { ... }
}

Фильтр работает отлично, но я хотел бы удалить его и использовать повторно, только я не могу понять, как.

Я попытался определить его в контроллере как function rangeFilter(...) иvm.rangeFilter = rangeFilter, а затем присвоить его условию как grid.appScope.filterRange(searchTerm, cellValue), но это не сработает.

Я не совсем уверен, как еще я могу это сделать, я не смог ничего найтив документации или прибегая к помощи по поиску.http://next.plnkr.co/edit/mbtXzfWqBg8FIALu

1 Ответ

0 голосов
/ 26 июня 2018

Как и вы, переместите функцию из определений столбцов.

function rangeFilter() {
    ...
}

И в определениях столбцов передайте ссылку на функцию в обоих.

vm.gridOptions = {
    ...
    columnDefs: [
      // default
      { field: 'name' },
      { field: 'range', cellFilter: 'range', filter: {condition: rangefilter}},
      // I want to reuse the same filter as 'range' for this column somehow...
      { field: 'anotherRange', cellFilter: 'range', filter: {condition: rangefilter}}
    ],
    ...
  };

Plunker

...