我正在将Angular 7与Typescript一起使用,并尝试为列表创建日期过滤器。该列表可能很大。我读了很多书,找到了Pipe解决方案。问题在于,当我更改过滤器参数时,ngFor不会刷新,并且我已经阅读到Pipe对于长列表不利。
我的HTML:
export interface IUser {
username: string;
email?: string;
isActive: boolean;
group: string[];
}
interface Field {
name: string;
label: string;
placeholder: string;
help?: string | React.ReactNode;
}
declare let user: IUser;
declare let field: Field;
let value = user[field.name as keyof IUser] // ok bacuse of the assertion
我的ts:
<tr *ngFor="let x of sessions | callback: filterByDate" (click)="view(x)">
管道类:
private filterByDate = (session: Session) => {
if (this.fromDateFilter && this.fromDateFilter > session.Date) {
return false;
}
if (this.toDateFilter && this.toDateFilter < session.Date) {
return false;
}
return true;
}
我有一个有角度的DatePicker,它可以更改'this.fromDateFilter'和'this.toDateFilter'参数。在角度1.6中,这非常容易。每次更改过滤器功能时,都会执行该功能。这里什么也没发生。
谢谢!