是否可以将观察者提供的更改应用于另一个对象(与观察到的对象类似的对象)?
E.g:
properties: {
boardBucket: {
type: Object,
value: {
items: [],
currentBoardId: 1
}
},
remoteBoardBucket: { // let's assume this is on another client
type: Object,
value: {
items: [],
currentBoardId: 1
}
}
},
observers: [
"_boardBucketChanged(boardBucket.*)"
],
_boardBucketChanged: function(changeRecord) {
// `applyChanges()` doesn't exist but can it be done?
this.remoteBoardBucket.applyChanges(changeRecord);
}
我正在构建一个协作编辑器,其中双方操纵他们的拥有 boardBucket
,添加/删除items
(板)到它和adding/removing
项目那些电路板(boardBucket.items[2].boardItems
是每个电路板的数组,用于存放该电路板中的项目。)
客户端通过它们之间的Web套接字进行通信,我想看看是否可以通过套接字仅发送 changeRecord
并将其应用于其他客户的boardBucket
。
这会显着加快速度,因为它无需来回发送整个boardBucket
(我实际上并没有这样做,但是为了我要把它拿出来的问题)这里)
这里一个重要的注意事项是我也在观察嵌套数组。虽然board.items
是一个保存板的数组,但每个板还包含另一个名为boardItems
的数组,用于保存这些板中的项目。因此,我在这里观察到任意数量的变化深度。