2017-02-08 15 views
0

コンポーネントとして別のモジュールにあるカートを持っているアプリケーションを構築しています。コンポーネントを訪問せずに角度2のコンポーネントをアクティブにする方法

私は、カートに項目を追加するボタンをクリックしていますし、カートのコンポーネントで、私は、このイベントに加入しています:

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

しかし、私が訪問していないとき、私は問題に直面していますそのカートのページにアクセスした後、カートに追加ボタンが呼び出されたときに呼び出された後に、"Item added into cart cart component"は呼び出されていません。

これは、別のモジュールにある他のコンポーネントから追加しています。だから、私はcartコンポーネントを訪問せずにsubscribeを呼び出す方法を理解することができません。

答えて

0

ngOninitメソッドを実行するには、そのコンポーネントをdomにロードする必要があります。そのコンポーネントのセレクタを作成した場合は、そのセレクタをヘッダーに追加するだけで、アプリケーションが読み込まれるとすぐにカートコンポーネントがロードされ、カートにアイテムを追加するたびにコンポーネントに通知されます。このようにしたくない場合は、コンポーネントを動的にDOMに追加するためにNgFactoryを解決する必要があります。あなたはそれを毎回解決しないためにそれを処理し、カートを空にするときに手動でそれを破壊することを確認しなければならないのでお勧めしません。この助けを願っています。

関連する問題