使用 .ts 代码在 Init 上过滤 PrimeNG Table
Filter PrimeNG Table on Init using .ts code
我需要在视图加载时过滤 table。
例如,我有一个包含 5 列的 table (Woid
、Customer
、AdapterID
、Assignee
、Status
) .在加载时,我想使用 '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"}];
现在可以正常使用了:)
我需要在视图加载时过滤 table。
例如,我有一个包含 5 列的 table (Woid
、Customer
、AdapterID
、Assignee
、Status
) .在加载时,我想使用 '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"}];
现在可以正常使用了:)