2016-09-07 5 views
0

私はAngular2を初めて使っています(Angular1の経験はありません)、現在は小さなウェブサイトで作業しています。私がしなければならないことはかなり簡単です。 AppComponentのテンプレートには、言語選択のための2つのボタンがあります。私はまた、ルートを持っています、/製品、私はWSから取得された製品のリストを表示する場所を考えてみましょう。言語ボタンの1つを押すと、リフレッシュする商品リストが必要になります。 ProductsServiceクラスのhttp.getリクエストを作成し、ProductsComponentクラスのobservableを購読します。しかし、どのように私は、AppComponentから依頼を取得し、ProductsComponentで依頼を​​受け取りますか?Angular2 - アプリコンポーネントからルートへイベントをトリガーする方法

助けていただければ幸いです。

答えて

0

説明に基づいて2つのことができます。

  • 変数に

    import {ViewChild} from '@angular/core'; 
    export class AppComponent{ 
        @ViewChild(ProductComponent) ProductComponent; 
        public reloadProduct(): void { 
         this.ProductComponent.reloadProduct(); 
        } 
    } 
    
  • AppComponent

    にViewChildようProductServiceクラスのストアの製品情報をProductComponentを追加します。言語ボタンを押すと、Webサービスを呼び出して新製品を入手し、ProductServiceクラス変数に格納します。 Angularは自動的にProductComponentで変更検出を行い、更新された製品リストを表示します。

+0

私はreloadProduct()を呼び出すと、最初の解決策this.ProductComponentは未定義です。 2番目のソリューションは結果をサービスからProductsComponentに渡しません。 –

+0

コンポーネント定義内のディレクティブのリストにProductComponentを追加しましたか? –

+0

はい、私はしました。まだ動作しませんでした –

関連する問題