如何在不访问组件

时间:2017-02-08 15:36:25

标签: javascript angular npm

我正在构建一个应用程序,其中我有一个不同模块的购物车作为组件。

我点击按钮将项目添加到购物车和购物车组件中我正在订阅此活动:

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

但是,当我没有访问购物车页面时,我遇到了问题,当时我尝试将商品添加到购物车中,然后"Item added into cart cart component"未被调用但访问购物车页面后调用添加到购物车按钮时调用它。

我是从不同模块中的其他组件添加它。所以,我无法弄清楚如何在不访问购物车组件的情况下进行订阅。

1 个答案:

答案 0 :(得分:0)

您需要在dom中加载该组件才能运行ngOninit方法。如果您已为该组件创建了一个选择器,那么您只需将该选择器添加到标题或某些位置即可,只要您的应用程序加载它也会加载购物车组件,每次您将项目添加到购物车时,您的组件都会收到通知。如果你不想这样做那么你必须我们resolveNgFactory动态地添加组件到dom。不推荐使用,因为您不必每次都添加它来解决它并确保在清空推车时手动销毁它。希望这有帮助。