我正在尝试通过下拉菜单来选择语言来实现 Ace 代码编辑器。我的下拉菜单有一个模式 ID。我已经让编辑器正常工作,但我无法像我希望的那样使用下拉菜单更改语言。我当前的代码是
var editor = ace.edit("code");
var textarea = $('textarea[name="code"]').hide();
editor.setTheme("ace/theme/textmate");
editor.getSession().setMode("ace/mode/sql");
editor.getSession().setValue(textarea.val());
editor.getSession().on('change', function(){
textarea.val(editor.getSession().getValue());
});
$('#mode').on('change', function(){
var newMode = $("mode").val();
editor.session().setMode({
path: "ace/mode/" + newMode,
v: Date.now()});
});
如上所述,这成功启动了编辑器,但是我无法更改 SQL(初始语言)的语言。我遇到了这个问题动态更新 Ace Editor 的语法突出显示模式规则 https://stackoverflow.com/questions/22166784/dynamically-update-syntax-highlighting-mode-rules-for-the-ace-editor这就是为什么我包括了
v: Date.now()
但仍然没有运气。
你有一个拼写错误editor.session().setMode({
line
use editor.session.setMode("ace/mode/" + newMode)
而不是它。
v: Date.now()
需要禁用缓存,您很可能不需要它。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)