将财产的变更记录应用于其他类似财产

时间:2016-03-27 06:13:23

标签: javascript polymer polymer-1.0

是否可以观察者提供的更改应用于另一个对象(与观察到的对象类似的对象)?

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的数组,用于保存这些板中的项目。因此,我在这里观察到任意数量的变化深度。

0 个答案:

没有答案