我正在构建一个应用程序,其中我有一个不同模块的购物车作为组件。
我点击按钮将项目添加到购物车和购物车组件中我正在订阅此活动:
ngOnInit(): void {
this._cartService.itemSelected$.subscribe(item => {
console.log("Item added into cart cart component");
});
}
但是,当我没有访问购物车页面时,我遇到了问题,当时我尝试将商品添加到购物车中,然后"Item added into cart cart component"
未被调用但访问购物车页面后调用添加到购物车按钮时调用它。
我是从不同模块中的其他组件添加它。所以,我无法弄清楚如何在不访问购物车组件的情况下进行订阅。
答案 0 :(得分:0)
您需要在dom中加载该组件才能运行ngOninit方法。如果您已为该组件创建了一个选择器,那么您只需将该选择器添加到标题或某些位置即可,只要您的应用程序加载它也会加载购物车组件,每次您将项目添加到购物车时,您的组件都会收到通知。如果你不想这样做那么你必须我们resolveNgFactory动态地添加组件到dom。不推荐使用,因为您不必每次都添加它来解决它并确保在清空推车时手动销毁它。希望这有帮助。