我是 Angular 6 的新成员。我目前正在从事 Angular 6 项目。我遇到了需要归档数据的情况,但我无法保留原始对象。这是代码:
this.loginService.categoryType$.subscribe((data) => {
for(var i=0; i<this.listPosts.length; i++){
if(this.listPosts[i]['categoryName'] == data){
}else{
this.listPosts.splice(i,1);
}
}
});
HTML:
<li class="nav-item" (click) = "selectedCategory('buy')" style="cursor: pointer;">
<a class="nav-link" [ngClass]="{'active':selectedCat == 'buy'}">
<i class="material-icons left-nav">
shopping_cart
</i>
Buy
</a>
</li>
<li class="nav-item" (click) = "selectedCategory('sell')"style="cursor: pointer;">
<a class="nav-link" [ngClass]="{'active':selectedCat == 'sell'}">
<i class="material-icons left-nav">
shopping_basket
</i>
Sell
</a>
</li>
问题是如何保留原始对象值,因为数据已经被拼接了。
最佳答案
如果你需要保留原始列表以及过滤后的列表,我建议你将原始列表保存在一个变量中,然后使用 rxjs 方法显示过滤后的
originalList$: BehaviorSubject<any> = new BehaviorSubject<any>([]);
filteredList = [];
this.loginService.categoryType$.subscribe((data) => {
this.originalList$.next(data);
});
this.originalList$.pipe(
map(data => yourLogicToFilter(data))
).subscribe(list => filteredList = list);
filteredList 可以是一个 Observable,因此您也可以在代码中使用异步管道。
可能有更简洁的解决方案包含 rxjs,但至少这应该让你继续逻辑
关于javascript - 以 Angular 6 过滤数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55559794/