【问题标题】:How to applyDelta without triggering change Ace Editor如何在不触发更改 Ace Editor 的情况下应用Delta
【发布时间】:2022-07-23 06:40:12
【问题描述】:

我正在尝试将 Ace 编辑器与 Websocket 同步,但是当我 applyDelta(通过 websocket 接收)时。 on("change") 事件被触发。有没有办法在不触发事件的情况下应用更改?

socket.onmessage = (data) {
  const deltas = JSON.parse(data);
  editor.applyDeltas(deltas);
}

editor.on("change", (delta) => {
  // here i trigger ws event
});

【问题讨论】:

    标签: websocket ace-editor


    【解决方案1】:

    您可以简单地忽略代码生成的事件

    var myChange = false
    socket.onmessage = (data) {
      const deltas = JSON.parse(data);
      myChange = true
      editor.applyDeltas(deltas);
      myChange = false
    }
    
    editor.on("change", (delta) => {
      if (myChange) return
      // here i trigger ws event
    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多