禁用Ace Editor的缓存

时间:2015-06-23 23:40:52

标签: javascript jquery html ace-editor

我正在编写一个单页面应用程序,它结合了树目录和Ace编辑器来编辑XML。树(使用JSTree完成)是从各种文件路径递归创建的。单击有效节点时,ajax调用将获取XML并设置Ace编辑器的值。然后可以编辑XML,然后发布以进行保存。

我的问题是,如果用户按下CTRL + Z并且当前XML中没有任何更改要撤消,则Ace编辑器的值将设置为上一个文件的值。此时,错误的节点现在在树中突出显示,编辑器正在显示错误的"数据

是否可以在Ace Editor或其DIV中禁用缓存?我想保留CTRL + Z撤消当前文件更改的功能,但希望每次将新文件加载到编辑器时清除/刷新它。

感谢您的投入!

1 个答案:

答案 0 :(得分:0)

调用POST会重置undomanager,但在这种情况下,最好使用新会话

editor.session.setValue

您可以在打开相同文件时保持旧会话以恢复滚动位置等,或者调用

var oldSession = editor.session
var session = ace.createEditSession("text")
editor.setSession(session)

摧毁它。