1 个订阅中的 2 个数据集将 1 个数据集设置为只读或将更改应用于 1 个数据集 (Angular)
2 Datasets from 1 Subscription make 1 set readonly or apply changes to 1 set (Angular)
早上好。
我有一项服务需要时间 return 结果。最糟糕的是 - 我必须调用它两次。
returned 数据形成 2 个网格(一个可编辑),在进行更改时会触发其他事件。
如果我分开订阅,对第二个数组所做的更改将包含到此数据集中
如果我订阅该服务一次并创建 2 个数据集,则对数组所做的任何更改都会传递到两个数据集。
我怀疑问题出在我订阅服务的方式上
this._CashService.getCash()
.subscribe((data: any[]) => {
this.cash = data;
this.cash2 = data;
});
这是一个显示我的问题的 plunker
https://plnkr.co/GwgBD1Mp8XF5oLZoYt4k?p
顶格我不会改
当我将第一个网格绑定到 "cash" 变量并将第二个网格绑定到 "cash2" 时,这些变量引用了同一个数组(来自我的服务的 "data")。因此,当我修改 "cash2" 数组的一项时,"cash" 数组也被修改了。
要单独编辑数组,我需要复制原始数组。要为此示例执行此操作,需要
this.cash2 = JSON.parse(JSON.stringify(data));
早上好。
我有一项服务需要时间 return 结果。最糟糕的是 - 我必须调用它两次。
returned 数据形成 2 个网格(一个可编辑),在进行更改时会触发其他事件。
如果我分开订阅,对第二个数组所做的更改将包含到此数据集中
如果我订阅该服务一次并创建 2 个数据集,则对数组所做的任何更改都会传递到两个数据集。
我怀疑问题出在我订阅服务的方式上
this._CashService.getCash()
.subscribe((data: any[]) => {
this.cash = data;
this.cash2 = data;
});
这是一个显示我的问题的 plunker
https://plnkr.co/GwgBD1Mp8XF5oLZoYt4k?p
顶格我不会改
当我将第一个网格绑定到 "cash" 变量并将第二个网格绑定到 "cash2" 时,这些变量引用了同一个数组(来自我的服务的 "data")。因此,当我修改 "cash2" 数组的一项时,"cash" 数组也被修改了。
要单独编辑数组,我需要复制原始数组。要为此示例执行此操作,需要
this.cash2 = JSON.parse(JSON.stringify(data));