使用的框架是:Angular2我在兩個組件ArticleListComponent和ArticleListFilterComponent,使用服務Service進行組件通信,定義了一個SearchService,用來響應ArticleListFilterComponent的變化,來更新ArticleListComponent的列表。在ArticleListComponent的ngOnInit方法,添加如下代碼,添加觀察者來監控搜索過濾器的變化。this.searchService.searchChange$.subscribe( change => { for (let key in change) {
this.filter[key] = change[key];
} //搜索的時候, 重置頁數
this.getArticles(true);
}
);但是有一個問題,在Angular2中Service是單例的,在每次我路由跳轉到ArticleListComponent組件,會調用ngOnInit方法,導致會添加很多重復的訂閱者。有沒有什么方法,能夠清空訂閱者,或者保持只有當前一個訂閱者?查了RxJs的文檔,但沒看到類似方法。不知道大神們有什么解決方法嗎?謝謝大家。
使用RxJs碰到的問題,如何防止重復訂閱?
哈士奇WWW
2018-09-12 13:14:16