簡體   English   中英

Angular 7:如何發送和接收全球事件?

[英]Angular 7: How to send and receive a global event?

我研究角度,抱歉這個愚蠢的問題。

我需要使用單個服務實例為Windows提供服務,或者能夠發送廣播事件並在每個組件中監聽它們。

使用@input和@output並不像是有不同的組件嵌套。

如何解決這個問題?

實現此目的的一種方法是使用服務。 在服務內部創建一個Subject成員變量(你需要RxJS,已經安裝了angular,因為它是一個依賴項)。

Subject可以由服務外的任何組件訂閱(您需要在組件構造函數中注入服務)。 然后,只要您想觸發該事件,就可以在Subject上調用.next(),每個訂閱者都將激活自己的回調。

當訂閱完成且不再需要時,重要的是來自Subject的.unsubscribe(),否則存在內存泄漏的風險(因為訂閱者不會取消訂閱)。

有很多例子, 這里很簡單。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM