我正在编写一个单页应用程序,该应用程序结合了树目录和Ace编辑器来编辑XML。该树(使用JSTree完成)是通过各种文件路径递归创建的。单击有效节点后,Ajax调用将获取XML并设置Ace编辑器的值。然后可以编辑XML,然后过帐以保存。
我的问题是,如果用户按CTRL + Z并且当前XML中没有要撤消的更改,那么Ace编辑器的值将被设置为上一个文件的值。此时,错误的节点现在在树中突出显示,并且编辑器正在显示“错误的”数据。
是否可以在Ace编辑器或其DIV中禁用缓存?我想保留CTRL + Z撤消当前文件中的更改的功能,但是希望每次将新文件加载到编辑器中时都将其清除/刷新。
谢谢您的意见!
调用会editor.session.setValue
重置undomanager,但是在这种情况下,最好改用新会话
var oldSession = editor.session
var session = ace.createEditSession("text")
editor.setSession(session)
您可以保留旧会话以在打开相同文件时恢复滚动位置等,或调用
oldSession.destroy()
摧毁它。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句