模板未应用过滤的日期过滤器 (PrimeNG Table)
Date filter with template not applying filtering (PrimeNG Table)
我正在使用 PrimeNG table 开发一个 SPA 来显示记录,每列都有一个数据过滤器。
其中之一是日期记录,它以 ISO 字符串的形式出现,并在被提供给 table 本身之前转换为日期对象。
我需要日期格式为“dd/MM/yyyy”,默认情况下日期的 p-columnFilter 与“MM/dd/yyyy”一起使用,所以我使用过滤器的 pTemplate 来自定义日历中的格式。
<ng-template ngFor let-col [ngForOf]="columns">
<th *ngIf="col.type !== 'date'" [pSortableColumn]="col.field">
{{col.header}}
<p-sortIcon [field]="col.field"></p-sortIcon>
</th>
<th *ngIf="col.type === 'date'" class="obe-table__date-header" [pSortableColumn]="col.field" [attr.rowspan]="2">
{{col.header}}
<p-sortIcon [field]="col.field"></p-sortIcon>
<p-columnFilter type="date" [field]="col.field" display="menu">
<ng-template pTemplate="filter">
<p-calendar dateFormat="dd/mm/yy"></p-calendar>
</ng-template>
</p-columnFilter>
</th>
</ng-template>
然后,当显示过滤器 UI 并单击“应用”时,它就好像没有注册该值一样。我在想我在日历中缺少一个 [ngModel] 绑定,但我也尝试过但没有成功。
提前致谢。
您对函数的调用丢失了:
(onSelect)="filter($event)"
不要忘记在 ng 模板中:
let-filter="filterCallback"
它给出了这个:
<p-columnFilter type="date" [field]="col.field" display="menu">
<ng-template pTemplate="filter" let-filter="filterCallback">
<p-calendar dateFormat="dd/mm/yy" (onSelect)="filter($event)"></p-
calendar>
</ng-template>
</p-columnFilter>
我正在使用 PrimeNG table 开发一个 SPA 来显示记录,每列都有一个数据过滤器。
其中之一是日期记录,它以 ISO 字符串的形式出现,并在被提供给 table 本身之前转换为日期对象。
我需要日期格式为“dd/MM/yyyy”,默认情况下日期的 p-columnFilter 与“MM/dd/yyyy”一起使用,所以我使用过滤器的 pTemplate 来自定义日历中的格式。
<ng-template ngFor let-col [ngForOf]="columns">
<th *ngIf="col.type !== 'date'" [pSortableColumn]="col.field">
{{col.header}}
<p-sortIcon [field]="col.field"></p-sortIcon>
</th>
<th *ngIf="col.type === 'date'" class="obe-table__date-header" [pSortableColumn]="col.field" [attr.rowspan]="2">
{{col.header}}
<p-sortIcon [field]="col.field"></p-sortIcon>
<p-columnFilter type="date" [field]="col.field" display="menu">
<ng-template pTemplate="filter">
<p-calendar dateFormat="dd/mm/yy"></p-calendar>
</ng-template>
</p-columnFilter>
</th>
</ng-template>
然后,当显示过滤器 UI 并单击“应用”时,它就好像没有注册该值一样。我在想我在日历中缺少一个 [ngModel] 绑定,但我也尝试过但没有成功。
提前致谢。
您对函数的调用丢失了:
(onSelect)="filter($event)"
不要忘记在 ng 模板中:
let-filter="filterCallback"
它给出了这个:
<p-columnFilter type="date" [field]="col.field" display="menu">
<ng-template pTemplate="filter" let-filter="filterCallback">
<p-calendar dateFormat="dd/mm/yy" (onSelect)="filter($event)"></p-
calendar>
</ng-template>
</p-columnFilter>