使用 .ts 代码在 Init 上过滤 PrimeNG Table

Filter PrimeNG Table on Init using .ts code

我需要在视图加载时过滤 table。

例如,我有一个包含 5 列的 table (WoidCustomerAdapterIDAssigneeStatus) .在加载时,我想使用 'contains' 过滤 woid 列。我完成了过滤 onLoad 但是当我稍后想再次过滤该列时,我得到了一个 error:

[i]'Cannot find a differ supporting object '[object Object]' of type 'object'. NgFor only supports binding to Iterables such as Arrays.'[/i]

下面的程序代码...

@ViewChild('dt', { static: true }) dt: any;
ngOnInit() {
    this.dt.filter('22', 'woid', 'contains');
}

此外,在通过 .ts 代码(woid 过滤器)过滤并直接使用来自 PrimeNG Angular 集合的 <p-columnFilter>customer 过滤器)查看后,我得到这个JSON。 woid 属性 不是数组,不像自定义数组。 onFiltering 方法和下面的 JSON。

onFiltering(event: any) {
    console.log('Filtered value: '+ JSON.stringify(event.filters));
}


{
    "woid": {
        "value": "22",
        "matchMode": "contains"
    },
    "customer": [{
        "value": "2",
        "matchMode": "contains",
        "operator": "and"
    }]
}

我替换了这行代码:

this.dt.filter('22', 'woid', 'contains'); 

有了这个:

this.dt.filters['woid'] = [{value: "22", matchMode: "contains", operator: "and"}];

现在可以正常使用了:)