如果要存在于数组中,我要根据值隐藏和显示一个div。
此刻,我正在显示所有数据,但不知道如何格式化ngIf,因此我可以过滤数组中的值。
我要检查information.date是否在filtreArrayDate中,如果要显示,除非隐藏
<div *ngIf="user.recipient === selectedUser._id && showInformation(information)">
//<div *ngIf="filtreArrayDate.includes(information.date)"> // throw error in includes
<div class="information-date">{{ information.date | date:'EEEE'}} {{information.date | date:'d'}} {{ information.date | date:'MMMM'}} {{ information.date |
date:'yyyy'}}
//</div>
</div>
这是我的ts文件,它将获取所有信息,并将进行过滤并获得过滤后的数组。我想使用此过滤数组来显示/隐藏我的div
initInformations() {
if (this.informationSubscribe) {
this.informationSubscribe.unsubscribe()
}
this.InformationSubscribe = this.informationProvider.getInformations(this.selectedUser._id).subscribe(
({ data }) => {
this.informations = data['getInformationsByUser']
const test = this.informations.map(a => a.date);
const set = new Set()
const filtreArrayDate = test.filter((a) => {
const d = new Date(a).setHours(0, 0, 0)
if (set.has(d)) {
return false
}
set.add(d);
return true;
})
if (this.informations.length === 10 && !this.enableInfiniteScroll) {
this.enableInfiniteScroll = true
}
},
(error) => {
console.warn(`getInformations failed: ${JSON.stringify(error)}`)
})
}
答案 0 :(得分:0)
正如您所提到的,您正在使用filtreArrayDate.includes进行检查,并在此处消除错误。 尝试使用 filtreArrayDate?.includes ,看看它是否可以解决您的问题。