我有以下代码:
summaries$: BehaviorSubject<IncidentSummary[]> = new BehaviorSubject(new Array<IncidentSummary>(0));
onSearchTextChanged(val: any) {
this.summaries$.subscribe(data => this.summaries$.next(data.filter(summary =>
summary.name.startsWith(val)
|| summary.type.startsWith(val))));
}
基本上,我正在根据搜索文本过滤BehaviorSubject的数据。问题在于此代码会导致无限循环。我尝试从没有帮助的订阅中进行unsubscrib
处理。那么如何使用数据传递给BehaviorSubject.next
?
答案 0 :(得分:1)
不订阅获取数据。您可以将完整数据数组存储在一个自己的属性中,只需调用next
,然后使用根据完整数据和搜索文本计算出的新过滤数据即可。