使用Angular 7,我有一个搜索输入,该输入连接到Observable<string>
searchValue = new FormControl("");
this.searchChanges$ = searchValue.valueChanges
我还有另一个Observable<Record[]>
,我是从firebase那里获得的,我正在尝试使用以下搜索字符串过滤数组:
return this.searchChanges$.pipe(
withLatestFrom(recordsObserver, (searchValue, records) => {
return records.filter(record => record.title.includes(searchValue));
})
);
问题在于,直到输入内容发生更改,列表才会更新,什么是解决此问题的最佳方法?
答案 0 :(得分:1)
当两个可观察物都将用作新可观察物的主要来源时,您应该使用 combineLatest 而不是 withLatestFrom 。 这样,当您的一个源可观测对象触发时,您的新组合可观测对象也将触发。
关于这种用例的另一个便捷工具是使用 startWith