javascript - 通过共享服务在两个组件之间进行 Angular 2/4 通信

标签 javascript angular

我正在尝试构建一个简单的购物车应用程序。 我有两个组件和一个购物车服务,如下所示。

<app-header></app-header>

<app-cart></app-cart> 

购物车服务具有将商品添加到购物车、删除购物车中的商品、购物车数量等的所有功能。

当用户将产品添加到购物车时,我需要更新 header 组件中的购物车计数。

如何使用共享服务来做到这一点。

最佳答案

在这种情况下,您可以使用带有主题的服务。 Angular 中的服务是单例的,这意味着它作为单个实例进行管理。因此,如果每个组件都访问该服务,它们将访问相同的共享数据。

export class cartService{
    private prodCount = 0;
    prodCountCountChange: Subject<number> = new Subject<number>();
    UpdateCount(count: number) {
        this.prodCount = count;
        this.prodCountCountChange.next(this.prodCount);
    }
}

在你的组件中你可以这样做,

  this._cartService.UpdateCount(this.prod.length);

关于javascript - 通过共享服务在两个组件之间进行 Angular 2/4 通信,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46560989/

相关文章:

JavaScript 测试 RegEx 总是返回 false

javascript - 如何提高视网膜 ipad 上的 Canvas 性能?

javascript - 2个圆圈javascript之间的交集

javascript - VSCode 不建议导入 ES6?

node.js - 从 Node.js 发送的字节数组中以 Angular 下载文件

ios - PWA 应用程序 - 使用 Angular 6 在本地存储中存储图像和视频

angular - Typescript - 如何在 map 中设置对象键的值

javascript - 使 URL W3C 有效并在 Ajax 请求中工作

javascript - 如何强制组件重新加载,使用 Angular 7 进行状态更改

c# - 如何仅将日期从 angular 6 传递到 web api