私はそのような非同期でngForを有する:Angular2/TypescriptでObservableを独自のデータで更新することはできますか?
<div *ngFor="let location of googleSearchLocations | async">
<div *ngFor="let location of facebookSearchLocations | async">
これは私の成分である:
private searchTerms = new Subject<string>();
googleSearchLocations: Observable<GoogleLocation[]>;
facebookSearchLocations: Observable<FacebookLocation[]>;
ngOnInit(): void {
this.googleSearchLocations = this.searchTerms
.debounceTime(300)
.switchMap(term => term
? this.locationService.getGoogleLocations(term)
: Observable.of<GoogleLocation[]>([]));
this.facebookSearchLocations = this.searchTerms
.debounceTime(300)
.switchMap(term => term
? this.locationService.getFacebookLocations(term)
: Observable.of<FacebookLocation[]>([]));
}
search(term: string): void {
this.searchTerms.next(term);
}
Iは、入力からの値とsearch
方法を使用する両方の配列を移入します。
ある時点で、非同期の場合のようにデータを非表示にする空の配列を割り当てるだけで、divを非表示にしたかったのです。しかし、nullまたは新しいObservableを割り当てると、将来の更新が中断されるため、思ったより複雑に見えます。だから、どういうわけか "次へ"を行う方法や、観測可能なデータを私の場合は空の配列に送る方法がありますか?
私はただsearchTerms
にプッシュすることができますが、両方のdivを同時に非表示にして+デバウンス値を使用するため、望ましくありません。
「searchTerms.next(null)」を作成できないのはなぜですか? – martin
私はそれに従属する2つの観測可能なUI(UIの2つのポップアップ)を持っています。ユーザーがそこをクリックすると、そのうちの1つだけを閉じたいと思います。 –
もう1つは、私が持っていることです。私はそのポップアップをすぐに閉じたいと思う。 –