angular - 对象输入的 PrimeNG 数据表自定义过滤器
问题描述
我有一个带有动态列的 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>
代表数据表数据的我的用户对象看起来像这样:
User {
id?: number;
attributes?: Object;
}
在此属性对象中,您可以找到每一列的值。用于*ngFor
构建每一列的 searchFilters 是动态构建的,并不总是包含属性对象包含的所有内容。现在因为它是一个对象,所以我无法设置field="attribute[param.name]"
(从*ngFor
)。所以我尝试了一个也不起作用的自定义过滤器。
有人可以帮忙吗?
解决方案
推荐阅读
- pandas - 尝试使用 '|' 将 txt 读入数据框 作为分隔符,但 pd 继续跳行
- python - 当铃细胞为假时如何增加ID
- postgresql - PostgreSQL 交叉表无法按预期工作
- database - 如何获得解码/未透视行的唯一计数(列到行)
- java - 如何修复无法解析方法“findViewById”
- javascript - 再次单击时关闭 javascript 选项卡
- javascript - 每次使用不同的细节渲染相同的组件
- mysql - 同一数据库事务中的两条 SQL 语句可以引用其他的更新字段吗?
- python-3.x - 如何使用opencv图像在Flask中渲染模板而不将文件写入磁盘?
- javascript - 是否可以为 DTO 设置默认值?