2016-09-07 61 views
0

我是Angular2的新手(對Angular1沒有任何經驗),我目前正在一個小型網站上工作。我需要做的很簡單。在AppComponent的模板中,有兩個語言選擇按鈕。我也有一個路線,比方說/產品,我在那裏顯示從WS(http通過服務獲取)檢索到的產品列表。當我按下其中一個語言按鈕時,我需要刷新產品列表。我在ProductsService類中創建http.get請求,並且我訂閱了ProductsComponent類中的observable。但是,如何從AppComponent觸發獲取請求,同時仍然接收ProductsComponent中的訂閱?Angular2 - 如何觸發從應用程序組件到路線的事件

任何幫助將不勝感激

回答

0

根據您的描述,你可以做兩件事。

  • 添加ProductComponent爲ViewChild在AppComponent

    在一個變量中ProductService類
    import {ViewChild} from '@angular/core'; 
    export class AppComponent{ 
        @ViewChild(ProductComponent) ProductComponent; 
        public reloadProduct(): void { 
         this.ProductComponent.reloadProduct(); 
        } 
    } 
    
  • 商店產品信息。當按語言按鈕時,調用Web服務並獲取新產品並將其存儲在ProductService類變量中。 Angular將自動在ProductComponent中執行更改檢測並顯示更新的產品列表。

+0

感謝您的回覆,第一個解決方案this.ProductComponent是未定義的,當我打電話reloadProduct();第二種解決方案不會將結果傳遞給服務中的ProductsComponent。 –

+0

您是否在組件定義中的指令列表中添加了ProductComponent? –

+0

是的,我做到了。沒有工作,雖然 –

相關問題