可观察值是另一个可观察值的一部分
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了可观察值是另一个可观察值的一部分相关的知识,希望对你有一定的参考价值。
indexData和indexEditData是我在应用程序中使用的可观察对象。 indexData保存一个json对象。我用这个json值建立了一个表。我通过选择行来完成对该表行的编辑。选择时,要编辑的所选行的json将放置在indexEditData中。在这个变量中,我必须更改值。当我更改值时,它也反映在可观察的indexData中。
我如何限制这种变化?当我在indexEditData中编辑时,我不想更改indexData中的值。
private INDEX_DATA: any[] = [];
private indexDataSource = new BehaviorSubject(this.INDEX_DATA);
indexData = this.indexDataSource.asObservable();
private INDEX_EDIT_DATA: any[] = []; // For Grid in edit view
private indexDataEditSource = new BehaviorSubject(this.INDEX_EDIT_DATA);
indexEditData = this.indexDataEditSource.asObservable();
答案
indexData是可观察的,但是您不需要indexEditData是可观察的,因为它只是本地组件的状态。
我建议您应该:
- 将
indexData
声明为observable (ReplaySubject)
,indexEditData
只是普通对象数组 - 从源中获取数据并存储在
indexData
中。订阅它并将值存储在indexEditData
- 使用
indexEditData
进行更新/编辑等 - 一旦编辑完成,用
indexData
替换indexData.next(indexEditData)
值
希望这可以解决您的问题。
以上是关于可观察值是另一个可观察值的一部分的主要内容,如果未能解决你的问题,请参考以下文章