Ace JS 编辑器 - Enable/Disable 编辑器中的撤消和重做按钮

Ace JS Editor - Enable/Disable Undo and Redo buttons in editor

我在尝试实现一种方法来根据 UndoManager 自动启用或禁用我的撤消和重做按钮时遇到一些问题。

var editor = ace.edit(editorElement);

editor.on('change', function (e) {
  var um = editor.getSession().getUndoManager();
  $('button.undo').attr('disabled', um.hasUndo() ? false : true );
  $('button.redo').attr('disabled', um.hasRedo() ? false : true );
});

当您对文档进行第一次更改时,它不会更改按钮的禁用状态。此时 UndoManager 还没有被告知发生了变化。

我没有看到任何适合测试 UndoManager 状态的事件。

使用 input 事件而不是 change 事件。 undomanager 在 change 事件触发后异步更新,然后 input 事件发出。