单击它时,自定义过滤器未定义抛出错误

时间:2019-08-06 05:27:35

标签: javascript angular ag-grid

我正在尝试从此处的示例https://www.ag-grid.com/javascript-grid-filter-provided-simple/#filterOptions使用自定义过滤器,当我单击它时显示错误:enter image description here 它甚至都不是日期过滤器,为什么会失败?在过滤器选项卡中,它也不会显示标题并显示未定义,示例是否不再起作用?

 this.columnDefs.push({
                colId: i + 1,
                field: `${i + 1}`,
                headerName: header,
                filter: 'agNumberColumnFilter',
                filterParams: {
                    filterOptions: ['inRange', 'equals', 'notEqual', 'lessThan', 'greaterThan', 'lessThanOrEqual', 'greaterThanOrEqual',
                        {
                            displayKey: 'lessThanWithNulls',
                            displayName: 'Less Than with Nulls',
                            test: function (filterValue, cellValue) {
                                return cellValue == null || cellValue < filterValue;
                            }
                        }
                    ]
                },
                menuTabs: ['filterMenuTab'],
                valueFormatter: (params: any) => {
                    if (!params || !params.data || !params.data.values)
                        return '';
                    let val = '';
                    if (params.node.rowIndex === params.data.rowId) {
                        const data = params.data.values.find(x => x.colId === params.colDef.colId);

                        val = this.formatValue(data);
                    }
                    params.value = val;
                    return params.value ? params.value : '';
                },
                valueGetter: (params: any) => {
                    if (!params || !params.data || !params.data.values)
                        return '';
                    let val = '';
                    if (params.node.rowIndex === params.data.rowId) {
                        const data = params.data.values.find(x => x.colId === params.colDef.colId);

                        val = this.formatValue(data);
                        val = val ? val.substr(0, val.indexOf(' ')).replace(',', '.') : '';
                    }
                    // use formatted value as number for filtering
                    params.value = +val;
                    return params.value;
                },
            );

<ag-grid #grid class="ag-fresh" style="width: 100%; height: 100%;" [enableColResize]="enableColResize"
    [frameworkComponents]="frameworkComponents" [height]="height" [enableFilter]="true" [localeText]="localeText"
    [columnDefs]="columnDefs" [autoSizeColumns]="autoSizeColumns" (cellDoubleClicked)="cellDoubleClicked($event)"
    [enableSorting]="enableSorting" [rowSelection]="rowSelection" (selectionChanged)="selectionChanged()"
    [rowData]="model">
</ag-grid>

0 个答案:

没有答案