gpt4 book ai didi

angular - 使用 PrimeNG 过滤后更新实际值

转载 作者:太空狗 更新时间:2023-10-29 18:19:31 25 4
gpt4 key购买 nike

我正在使用 PrimeNG,并将全局过滤器添加到我的表中:

 <input #gb type="text" pInputText size="50" placeholder="Filter">

数据表:

<p-dataTable *ngIf="users != null && users.length > 0" [value]="users" loadingIcon="fa-spinner" [globalFilter]="gb">

我需要向已过滤的用户发送邮件。但是我注意到用户数(用户数量)不会根据过滤器更新。

记录根据表中的过滤器正确显示,但邮寄这些用户会将邮件发送给从数据库中检索到的所有用户。

有没有一种方法可以在使用 PrimeNG 过滤器选项过滤后更新实际用户的数量?

最佳答案

DataTable 组件有一个名为 filteredValue 的变量,过滤后的值存储在该变量中。获取过滤值的方式有两种:

First way

您可以使用 ViewChild 获取对 DataTable 对象的引用并获取您筛选的用户:

模板

<p-dataTable #dataTable *ngIf="users != null && users.length > 0" [value]="users" loadingIcon="fa-spinner" [globalFilter]="gb">

组件

import { Component, ViewChild } from '@angular/core';
import { DataTable } from 'primeng/primeng';

@ViewChild('dataTable')
dataTable: DataTable;

既然已经引用了DataTable组件,那么过滤用户就很容易了:

printFilteredUsers() {
console.log(this.dataTable.filteredValue);
}

Second way

DataTable 组件有一个名为 onFilter 的事件,每次过滤 DataTable 的内容时都会触发该事件:

模板

<p-dataTable *ngIf="users != null && users.length > 0"
[value]="users" loadingIcon="fa-spinner" [globalFilter]="gb"
(onFilter)="printFilteredUsers($event)">

组件

printFilteredUsers(event: any) {
console.log(event.filteredValue); // filtered users
console.log(event.filters); // applied filters
}

PrimeNG 的 DataTable 有很好的文档记录,我建议检查一下。你可以做到here .

关于angular - 使用 PrimeNG 过滤后更新实际值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47185499/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com