[英]How to clear Observable<Array[]> in Angular?
我想清除一個可觀察的對象數組。 我做了什么:
private pages: Observable<CustomPage[]>;
//clear
this.pages.map(p => p = []);
是否有直接的 Observable 方法(rxjs)在沒有映射的情況下做到這一點?
我發現這非常有效並且非常直接。
this.someObservable = of([]); <-- Assigning empty array to an observable.
' of ' 是 rxjs 庫的一部分並返回一個 observable,因此您可以在此處與賦值運算符一起使用它。
希望這有幫助:)
如果您來自英雄之旅教程,您的理解可能會受到他們在那里顯示的非常基本的服務的限制。 這是一個更完整的服務的快速草圖,它可以滿足您的需求...
export class PageService {
private _pages = new ReplaySubject<CustomPage[]>(1);
private _dateFilter = new ReplaySubject<DateFilterCriteria>(1);
//Subscribe to this in your component
get pages(): Observable<CustomPage[]> {
return this._pages;
}
//Use this if you want to display the currently selected date
//filter somewhere (e.g. on your date filter control)
get dateFilter(): Observable<DateFilterCriteria> {
return this._dateFilter;
}
//PageAccess encapsulates requests against the Http service
constructor(private pageAccess: PageAccess) {
this._dateFilter.subscribe(dateFilter => this.fetchPages(dateFilter));
this.setNewDateFilter(null);
}
//Clears out the current list of pages, issues a new request
//for pages
private fetchPages(dateFilter: DateFilter) {
this._pages.next([]);
this.pageAccess.fetchPages(dateFilter).subscribe(pages => {
this._pages.next(pages);
});
}
//When your date filter control changes it should call this
//method
setNewDateFilter(dateFilter: DateFilter) {
this._dateFilter.next(dateFilter);
}
}
另外,我認為我交替使用DateFilter
和DateFilterCriteria
來表示您用來指示所需頁面日期的某個類。
又短又甜
new Observable<[]>();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.