我制作了一个过滤器函数,其中过滤器应用于列表中的元素,当我在页面上单击使用它时,该函数起作用,如下所示
<button (click)="FilterFn5()"> do </button>
但当我将函数放在ngOnInit上时,它不起作用. 我的ngOnInit如下所示:
ngOnInit(): void {
this.BuildingNameFilter="B"
this.BuildingRoomsFilter="2"
this.BuildingFloorFilter="0"
this.refreshBldList();
this.FilterFn5();
}
其功能是:
FilterFn5(){
var BuildingNameFilter = this.BuildingNameFilter;
var BuildingFloorFilter = this.BuildingFloorFilter;
var BuildingRoomsFilter = this.BuildingRoomsFilter;
this.BuildingList = this.BuildingListWithoutFilter.filter( (el:
{ BuildingId:
{ toString: () => string; }; BuildingFloor: { toString: () => string; };
BuildingName: { toString: () => string; }
ApartmentRooms: { toString: () => string; }; }) =>{
return el.ApartmentRooms.toString().toLowerCase().includes(
BuildingRoomsFilter.toString().trim().toLowerCase()
)
&& el.BuildingFloor.toString().toLowerCase().includes(
BuildingFloorFilter.toString().trim().toLowerCase()
)&&
el.BuildingName.toString().toLowerCase().includes(
BuildingNameFilter.toString().trim().toLowerCase()
)
});
}
过滤后的列表是BuildingList
,函数this.refreshBldList();
是该列表获取元素的位置
refreshBldList(){
this.service.getBuildingList().subscribe(data=>{
this.BuildingList=data;
this.BuildingListWithoutFilter=data;
});
}