禁用Ace编辑器的缓存

霓虹灯稻草人

我正在编写一个单页应用程序,该应用程序结合了树目录和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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章