首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用PrimeNG在过滤时更新实际值

使用PrimeNG在过滤时更新实际值
EN

Stack Overflow用户
提问于 2017-11-08 16:59:32
回答 1查看 3.8K关注 0票数 3

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

代码语言:javascript
运行
复制
 <input #gb type="text" pInputText size="50" placeholder="Filter">

数据表:

代码语言:javascript
运行
复制
<p-dataTable *ngIf="users != null && users.length > 0" [value]="users" loadingIcon="fa-spinner" [globalFilter]="gb">

我需要发送邮件给已经过滤的用户。但是,我注意到用户计数(用户数)不会在过滤器上更新。

根据表中的筛选器正确显示记录,但是邮寄这些用户会将邮件发送给从DB检索的所有用户。

是否有一种使用PrimeNG过滤器选项更新实际用户数量的方法?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-11-08 19:00:52

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

第一条路

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

模板

代码语言:javascript
运行
复制
<p-dataTable #dataTable *ngIf="users != null && users.length > 0" [value]="users" loadingIcon="fa-spinner" [globalFilter]="gb">

组件

代码语言:javascript
运行
复制
import { Component, ViewChild } from '@angular/core';
import { DataTable } from 'primeng/primeng';

@ViewChild('dataTable')
dataTable: DataTable;

既然您已经引用了DataTable组件,就很容易获得过滤用户:

代码语言:javascript
运行
复制
printFilteredUsers() {
  console.log(this.dataTable.filteredValue);
}

第二条路

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

模板

代码语言:javascript
运行
复制
<p-dataTable *ngIf="users != null && users.length > 0"
  [value]="users" loadingIcon="fa-spinner" [globalFilter]="gb"
  (onFilter)="printFilteredUsers($event)">

组件

代码语言:javascript
运行
复制
printFilteredUsers(event: any) {
  console.log(event.filteredValue); // filtered users
  console.log(event.filters); // applied filters
}

PrimeNG的DataTable已经有了很好的文档,我建议你检查一下。你可以这样做,这里

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47185499

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档