我正在使用ion-select
选择选项并对它进行过滤,但是问题是当我选择一个选项时它的过滤效果很好,但是当我第二次选择它的过滤器数据时,第一个过滤器的结果却不是实际数据
<ion-item >
<ion-label style="text-align: right;" dir="rtl" >קטגוריה</ion-label>
<ion-select dir="rtl" [(ngModel)]="selectedOption" (ionChange)="print()">
<ion-option *ngFor="let categ of cat2" dir="rtl" [value]="categ.id" >{{categ.title}}</ion-option>
</ion-select>
</ion-item>
print() {
console.log(this.selectedOption);
this.data = this.data.filter(category => category.categories[0].id === this.selectedOption);
}
这只是示例数据
{
{
"title": "111"
"category": "252"
},
{
"title": "111"
"category": "242"
},
{
"title": "111"
"category": "212"
},
{
"title": "111"
"category": "232"
}
}
当我选择232类别时,它显示1个数组,因为在数据中只有1个具有232类别的数组。但是第二次,如果我单击212,它什么也没有显示,但是数据中有值。其过滤第一个过滤器数据。
任何解决办法,我怎么能解决呢?我知道问题是当我选择第一个值时数据已更改。当我选择secodn值时,我需要从先前的数据而不是从第一个过滤器进行过滤。
您正在过滤数组并将其分配回同一数组,因此您尝试重新过滤已过滤的数组。过滤时应使用辅助数组:
filteredData = [];
// ....
print() {
this.filteredData = this.data.filter(category => category.categories[0].id === this.selectedOption);
}
然后使用辅助数组显示过滤后的值。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句