如何在 Ace 编辑器中获取/应用更改增量?

5 javascript ace-editor

我也尝试保持 Ace 编辑器的两个实例同步。因此,当用户输入其中一个时,另一个就会更新。

查看他们的文档,我发现EditSession change事件表示它返回更改的增量,并且文档有一个applyDeltas方法。

因此,我已经连接到该更改事件,当它被触发时,我调用另一个 document.applyDeltas 并将其传递过来,但它不起作用。

我一直在研究他们的文档(和谷歌一个小时),但我不知道如何使它们保持同步。有谁知道我该怎么做?

小智 4

好吧,我明白了。没有什么比查看 src 更好的了:)

文档上的 applyDeltas 方法需要一个数组,并且您需要从更改事件中获取数据。

//on editor1.change
this.handleEditor1Changed = function (e) {
    var deltas = new Array();
    deltas[0] = e.data;
    this.editor2.getSession().getDocument().applyDeltas(deltas);
};
Run Code Online (Sandbox Code Playgroud)

  • 请执行`applyDeltas([e.data]);`。`deltas = new Array();` 看起来像 php:) (3认同)