使用自己的数据更新BehaviorSubject

时间:2018-08-27 21:29:08

标签: angular rxjs behaviorsubject

我有以下代码:

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

1 个答案:

答案 0 :(得分:1)

不订阅获取数据。您可以将完整数据数组存储在一个自己的属性中,只需调用next,然后使用根据完整数据和搜索文本计算出的新过滤数据即可。