我有一个带有动态列的PrimeNG数据表,我想在这些列中添加一个过滤器来过滤该值。
这是带有过滤器的数据表列:
<p-column *ngFor="let param of searchFilters" [style]="{'width':'auto'}" header="{{param.name}}"
[filter]="true" filterPlaceholder="Search">
<ng-template pTemplate="filter" let-col>
<input type="text" (keyup)="dt.onFilterKeyup($event.target.value, param.name, 'contains')"/>
</ng-template>
<ng-template let-col let-user="rowData" pTemplate="body">
<span>
{{getUserAttributeCaseInsensitive(user.attributes, param.name)}}
</span>
</ng-template>
</p-column>
表示数据表数据的My User对象如下所示:
User {
id?: number;
attributes?: Object;
}
在此属性对象中,您可以找到每列的值。用于构建每列的*ngFor
的searchFilters是动态构建的,并不总是包含属性对象包含的所有内容。现在因为它是一个对象,我无法设置field="attribute[param.name]"
(来自*ngFor
)。所以我尝试了一个不起作用的自定义过滤器。
有人可以帮忙吗?