我正在编写一个单页面应用程序,它结合了树目录和Ace编辑器来编辑XML。树(使用JSTree完成)是从各种文件路径递归创建的。单击有效节点时,ajax调用将获取XML并设置Ace编辑器的值。然后可以编辑XML,然后发布以进行保存。
我的问题是,如果用户按下CTRL + Z并且当前XML中没有任何更改要撤消,则Ace编辑器的值将设置为上一个文件的值。此时,错误的节点现在在树中突出显示,编辑器正在显示错误的"数据
是否可以在Ace Editor或其DIV中禁用缓存?我想保留CTRL + Z撤消当前文件更改的功能,但希望每次将新文件加载到编辑器时清除/刷新它。
感谢您的投入!
答案 0 :(得分:0)
调用POST
会重置undomanager,但在这种情况下,最好使用新会话
editor.session.setValue
您可以在打开相同文件时保持旧会话以恢复滚动位置等,或者调用
var oldSession = editor.session
var session = ace.createEditSession("text")
editor.setSession(session)
摧毁它。