10

私は一般的にACEエディターとjavascriptにまったく慣れていませんが、次のことを除いて、意図したことのほとんどを達成することができました:

ドキュメントに未解決の変更があるかどうかに応じて、「保存」ボタンを有効または無効にしたいと思います。「変更」イベントでこれを実行しようとしました:

UndoManager.reset();

$('#save').addClass("disabled");

editor.on('change', function() {

        if (UndoManager.hasUndo()) {
            $('#save').removeClass("disabled");
        }
        else {
            $('#save').addClass("disabled");
        }

    });

ドキュメントをロードすると、「無効」クラスはすぐに削除されます。

誰かがそれをどのように行うべきかを私に示すことができれば、事前に感謝します。

4

2 に答える 2

18

editor.session.getUndoManager().reset()ドキュメントを読み込んだ後に を呼び出しisClean、のmarkCleanメソッドを使用しundoManagerます。

var saveButton = document.getElementById("save")
var editor = ace.edit("editor")
// using input event instead of change since it's called with some timeout
editor.on("input", function() {
    saveButton.disabled = editor.session.getUndoManager().isClean()
});

saveButton.addEventListener("click", function() {
    editor.session.getUndoManager().markClean()
    saveButton.disabled = editor.session.getUndoManager().isClean()
})
<script src="http://ajaxorg.github.io/ace-builds/src/ace.js"></script>
<button id="save">save</button>
<div id="editor" style="height:200px"></div>

于 2013-10-31T21:52:34.643 に答える