javascript - 以角度移除过滤器后无法恢复原始数组?
问题描述
我的组件中有一个数组,并且基于 searchString 我正在过滤项目数组。它工作正常。如果用户从搜索字段中删除字符,我想再次显示所有记录。但是从搜索字段中清除项目时,我无法再次显示所有记录。
请看下面的代码。
this.filterServ.filterData.subscribe(searchData => {
if (Object.keys(searchData).length != 0) {
console.log('component', searchData);
this.cardData = this.cardData.filter((project) => {
let name = project.Name.toLowerCase();
if (name.includes(searchData.searchString.toLowerCase())) {
return true;
}
});
console.log('filterd data', this.cardData);
}
});
解决方案
你已经对cardData
. 因此,您无法将其还原。
解决方案是创建另一个属性,例如您可以将其命名为displayData
。
然后你可以这样做:
this.displayData = this.cardData.filter((project) => {
而不是cardData
在模板上使用,displayData
而是使用
推荐阅读
- database - 关于创建网站以与我的 Raspberry Pi 服务器通信的非常普遍的问题
- javascript - 在输入 oninput 中调用 javascript 方法作为回调
- c# - 是否有更好的实践来管理类的实例化?
- django - 如何在 Django 中防止重复的 POST 请求处理?
- html - 我可以在 wordpress 页面上放置超过 1 个 Azure 媒体播放器吗?
- c++ - 可变参数函数重载和 SFINAE - 解决歧义以模拟“隐藏签名”
- c# - 枚举的定义没有从索引中给出值
- flutter - 如何在 Flutter 的 SafeArea 中制作多个 Cupertino 按钮?
- java - 使用 Streams 为列表的每个元素调用方法
- php - 无法检查 laravel 的 API 请求对象中是否存在属性