Пользовательские установщики не добавляются в объект сетки данных - PullRequest
1 голос
/ 18 июня 2019

У нас есть специальный компонент фильтра в сетке данных ясности. Кажется, фильтрация работает, но кажется, что чего-то не хватает, так как объект сетки данных не имеет значений фильтра.

До сих пор мы пытались создать фильтр, используя (несколько ограниченную) документацию. Размещение фильтра в разных местах в пределах сетки данных (как внутри, так и снаружи столбца, в зависимости от размера фильтра). Установка свойства значения фильтра (когда мы не устанавливаем свойство значения в компоненте фильтра, результаты поиска не фильтруются)

HTML

 <clr-dg-filter
    [clrDgFilter]="customFilter"
    [clrDgFilterOpen]="true"
    (clrFilterValue)="('')">
    <custom-filter
        [dataTable]="myDataTable"
        [columnName]="'PseudoStatus'"
        [dataGrid]="myDatagrid"
        [column]="column"
        #customFilter
        class="custom-filter">
    </custom-filter>
 </clr-dg-filter>

КОМПОНЕНТ ФИЛЬТРА

 constructor(private filterContainer: ClrDatagridFilter) {
      this.filterContainer.setFilter(this);
 }

 public get changes(): Observable<any> {
      return this._changes.asObservable();
 }

 toggleValue(value: string) {
       if (!this.selectedValue[value]) {
            this.selectedValue = {};
       }
       this.selectedValue[value] = !this.selectedValue[value];
       this.selectedValue[value] ? this.selectedCounter++ : this.selectedCounter--;
       this.value = value;

       this.setColumnFilter();
       this._changes.next(true);
  }

Я ожидаю, что фильтр, который мы установили, можно найти в объекте сетки данных - так же, как ClrDgStringFilter. Примерно так:

field: 'filterColumnName'  
filter: DatagridStringFilterImpl  
filterValue: 'set filter value'

Однако столбец в объекте сетки данных имеет следующие значения для своих свойств:

field: undefined  
filter: undefined  
filterValue: [Exception: TypeError: Cannot read property 'value' of undefined at ClrDatagridColumn.get [as filterValue]

В filterValue есть несколько столбцов (без пользовательских фильтров) с этим исключением, даже если у нас нет специального фильтра в сетке данных.

...