Невозможно фильтровать с помощью настраиваемого плавающего фильтра в сетке ag

У меня есть сетка ag, реализованная в моем приложении angular2 +, фильтры у меня работают нормально, но для некоторых полей мне нужен настраиваемый фильтр, потому что эти поля не являются прямыми полями в основном массиве, например

abc = [
    xyz_field,
    inner_parent_array: [{inner_field: 60}]
]

я хочу фильтровать через поле с именем inner_field, но не могу сделать это с помощью настраиваемых фильтров

это код из floatfiltercomponent

private params: IFilterParams;
private valueGetter: (rowNode: RowNode) => any;
public text: string = '';

@ViewChild('input', {read: ViewContainerRef}) public input;

agInit(params: IFilterParams): void {
    this.params = params;
    this.valueGetter = params.valueGetter;
    console.info(this.params);
}

isFilterActive(): boolean {
    return this.text !== null && this.text !== undefined && this.text !== '';
}

doesFilterPass(params: IDoesFilterPassParams): boolean {
    console.info(params.node);
    return this.text.toLowerCase()
        .split(" ")
        .every((filterWord) => {
            return this.valueGetter(params.node).toString().toLowerCase().indexOf(filterWord) >= 0;
        });
}

getModel(): any {
    return {value: this.text};
}

setModel(model: any): void {
    this.text = model ? model.value : '';
}

ngAfterViewInit(params: IAfterGuiAttachedParams): void {
    setTimeout(() => {
        this.input.element.nativeElement.focus();
    })
}

onChange(newValue): void {
    if (this.text !== newValue) {
        this.text = newValue;
        console.info(this.params);
        this.params.filterChangedCallback();
    }
}

но это дает ошибку, this.params.filterChangedCallback не является функцией, я не уверен, как я могу это исправить

фильтр работает нормально для xyz_field, но не для inner_field

вот живой пример того, что я хочу сделать

https://plnkr.co/edit/euuPnjpQ2IwtbKRYTXIv?p=preview

предоставьте piunk, воспроизводящий вашу проблему.

Paritosh 12.01.2019 08:11

@Paritosh вот он plnkr.co/edit/euuPnjpQ2IwtbKRYTXIv?p=preview

Muhammad Arslan 12.01.2019 15:20

см. город столбца, он не является прямым потомком в основном массиве, и поэтому фильтр не работает в этом столбце

Muhammad Arslan 12.01.2019 15:21
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Angular и React для вашего проекта веб-разработки?
Angular и React для вашего проекта веб-разработки?
Когда дело доходит до веб-разработки, выбор правильного front-end фреймворка имеет решающее значение. Angular и React - два самых популярных...
Эпизод 23/17: Twitter Space о будущем Angular, Tiny Conf
Эпизод 23/17: Twitter Space о будущем Angular, Tiny Conf
Мы провели Twitter Space, обсудив несколько проблем, связанных с последними дополнениями в Angular. Также прошла Angular Tiny Conf с 25 докладами.
Угловой продивер
Угловой продивер
Оригинал этой статьи на турецком языке. ChatGPT используется только для перевода на английский язык.
Мое недавнее углубление в Angular
Мое недавнее углубление в Angular
Недавно я провел некоторое время, изучая фреймворк Angular, и я хотел поделиться своим опытом со всеми вами. Как человек, который любит глубоко...
Освоение Observables и Subjects в Rxjs:
Освоение Observables и Subjects в Rxjs:
Давайте начнем с основ и постепенно перейдем к более продвинутым концепциям в RxJS в Angular
2
3
2 757
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Поддержка AG-Grid помогла мне найти это, Используйте valueGetter вместо valueFormatter в определении столбцов

Я не понимаю этого: как использование valueGetter внезапно устраняет ошибку о том, что filterChangedCallback не является функцией?

Mike Gledhill 16.04.2021 09:42

Другие вопросы по теме