html - Filtriraj PrimeNG tablicu prilikom inicijalizacije koristeći .ts kod
Trebam filtrirati tablicu pri učitavanju prikaza.
Na primjer, imam tablicu s 5 stupaca (Woid, Customer, AdapterID, Assignee, Status). Prilikom učitavanja želim filtrirati stupac woid koristeći 'contains'. Uspio sam filtrirati onLoad, ali kada želim ponovno filtrirati taj stupac kasnije, dobivam grešku:
[i]'Ne može se pronaći razlika koja podržava objekt '[object Object]' tipa 'object'. NgFor podržava vezanje samo za Iterables kao što su nizovi.'[/i]
Programski kod ispod...
@ViewChild('dt', { static: true }) dt: any;
ngOnInit() {
this.dt.filter('22', 'woid', 'contains');
}
Također, nakon filtriranja putem .ts koda (woid filter) i izravno u prikazu s <p-columnFilter> (customer filter) iz PrimeNG Angular kolekcije, dobivam ovaj JSON. Svojstvo woid nije niz, za razliku od custom koji jest. onFiltering metoda i JSON ispod.
onFiltering(event: any) {
console.log('Filtered value: '+ JSON.stringify(event.filters));
}
{
"woid": {
"value": "22",
"matchMode": "contains"
},
"customer": [{
"value": "2",
"matchMode": "contains",
"operator": "and"
}]
}
Odgovor #1
Zamijenio sam ovaj redak koda (u ngAfterContentInit):
this.dt.filter('22', 'woid', 'contains');
s ovim:
this.dt.filters['woid'] = [{value: "22", matchMode: "contains", operator: "and"}];
Sada radi dobro :)
PS. Ne radi ako koristite stateKey i stateStorage
