2017-02-08 38 views
0

我正在構建一個應用程序,其中有一個作爲組件的不同模塊中的購物車。如何在角度2中激活組件而不訪問組件

我點擊按鈕,將項目添加到購物車,並在車部件,我訂閱了這個事件:

ngOnInit(): void { 
    this._cartService.itemSelected$.subscribe(item => {   
    console.log("Item added into cart cart component");   
     }); 
} 

但是,我現在面臨一個問題,我沒有訪問過當購物車頁面,當時當我試圖將該物品添加到購物車中時,那麼"Item added into cart cart component"未被調用,但是在訪問購物車頁面之後,當添加到購物車按鈕被調用時它會被調用。

我從一些其他組件在不同的模塊中添加這個。所以,我無法弄清楚如何在不訪問購物車組件的情況下訂閱。

回答

0

您需要在dom中加載該組件才能運行ngOninit方法。如果您爲該組件選擇了一個選擇器,那麼您可以簡單地將該選擇器添加到標題中或某處,以便在應用程序加載後即可加載購物車組件,並且每次將項目添加到購物車時,都會通知組件。如果你不想這樣做,那麼你必須給我們解析NgFactory動態添加組件到DOM。不建議,因爲您必須處理它,因爲不會每次都添加解析它,並確保在您清空購物車時手動銷燬它。希望這個幫助。