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