【问题标题】:2 Datasets from 1 Subscription make 1 set readonly or apply changes to 1 set (Angular)来自 1 个订阅的 2 个数据集使 1 个集合成为只读或将更改应用于 1 个集合(Angular)
【发布时间】:2017-05-17 00:24:45
【问题描述】:

早上好。

我有一项服务需要一段时间才能返回结果。最糟糕的是 - 我必须调用它两次。

返回的数据形成 2 个网格(一个可编辑),当发生更改时会触发其他事件。

如果我分离订阅,对第二个数组所做的更改将包含在此数据集中

如果我订阅该服务一次并创建 2 个数据集,则对数组所做的任何更改都会流向这两个数据集。

我怀疑问题与我订阅服务的方式有关

this._CashService.getCash()
  .subscribe((data: any[]) => {
    this.cash = data;
    this.cash2 = data;
});

这是一个显示我的问题的 plunker

https://plnkr.co/GwgBD1Mp8XF5oLZoYt4k?p

我不会改变顶部网格

【问题讨论】:

    标签: angular observable http-get subscription


    【解决方案1】:

    当我将第一个网格绑定到“cash”变量并将第二个网格绑定到“cash2”时,这些变量引用了同一个数组(来自我的服务的“数据”)。因此,当我修改“cash2”数组的一项时,“cash”数组也被修改了。

    要单独编辑数组,我需要复制原始数组。为此示例执行此操作需要

    this.cash2 = JSON.parse(JSON.stringify(data));
    

    【讨论】:

      猜你喜欢
      • 2021-10-30
      • 1970-01-01
      • 1970-01-01
      • 2012-04-13
      • 2016-09-22
      • 2012-01-12
      • 2021-03-26
      • 1970-01-01
      • 2021-10-11
      相关资源
      最近更新 更多