我在Angular中有一张要过滤的表。在ngOnInit
中,我获取数据并将其保存到局部变量中,以便不再次调用DB来获取数据。
这是搜索方法的代码:
search() {
if (this.searched.length > 0) {
this.history = this.history.filter(res => {
return res.DestinationCompany.match(this.searched) || res.OriginCompany.match(this.searched) || res.AuctionSerialNumber.match(this.searched) || res.AuctionSerialNumber.match(this.searched);
})
} else {
this.history = this.historyOrigin;
}
}
问题是,当我删除字符时,即使它们可以显示更多结果,结果也不会更新。例如,如果我搜索表达式“ 7”,我得到5个结果,如果我搜索表达式“ 71”,我得到1个结果,但如果现在再次搜索“ 7”,我也得到1个结果,直到删除所有字符并获取完整结果。
当我删除角色时如何获得更多结果
答案 0 :(得分:1)
更改搜索过滤器时,将过滤以前的搜索已过滤的数据。
不要那样做。保留原始的完整数据列表的副本,并且每次搜索时,都会创建原始列表的筛选副本,并存储在不同变量中。
简而言之,替换
this.history = this.history.filter(...)
作者
this.history = this.historyOrigin.filter(...)