Ace编辑器解除绑定并重新启动

时间:2017-10-05 21:51:58

标签: initialization ace-editor unbind

我在同一界面中有2个ace编辑器。内容被动态加载到ace编辑器中 - 单击。

我想清空编辑器以清除屏幕。但是,当我这样做时,后续内容将不会加载到ace编辑器中。

# code used to initiate the ace editor
function initAceEditor(){
var editor1 = ace.edit("editor1");
editor1.setTheme("ace/theme/dreamweaver");
document.getElementById('editor1').style.fontSize='14px';
editor1.getSession().setUseWrapMode(true)
editor1.getSession().setMode("ace/mode/html");
});

# code to clear editor div
$('#editor1').empty().attr('class', '');


# I tried the following methods to unbind Ace Editor
ace.edit("editor1").getSession().removeListener('change');

# reinitiated by calling the function
initAceEditor();

但上述想法并不奏效。注意我有2个编辑器,我使用相同的代码编辑器1& editor2。

感谢您解决此问题的任何帮助。

2 个答案:

答案 0 :(得分:1)

您可以按顺序使用setValue来清除内容。

editor1.setValue("");

您正在尝试清除div中存在的所有元素。请改用setValue。

答案 1 :(得分:1)

要取消初始化和重新初始化,您可以销毁编辑器的实例,该实例将清理整个编辑器并避免任何内存泄漏,然后调用初始化函数。

editor1.destroy();
initAceEditor();

这会破坏您的实例并创建一个新实例。 如果要删除DOM节点和事件侦听器,可以使用:

editor1.container.remove()