Ace 编辑器不自动缩进

Ace editor not auto indenting

我有一个字符串(来自缓冲区),我必须将其放入 ace 编辑器(如 pre 标记)但是当我添加字符串 ace 时没有显示任何缩进,而正常的 <pre></pre> 和控制台都显示所有缩进。

在控制台中我看到了缩进!

console.log(d.code.toString());

但是当我将它添加到 ace 时:

$('#view').html(
    '<pre id="editor">'
+       (d.code.toString().replace(/\>/g,'&gt;').replace(/\</g,'&lt;'))
+   '</pre>'
    );
var editor = ace.edit("editor");
editor.setTheme("ace/theme/monokai");
editor.session.setMode("ace/mode/javascript");

尝试使用 editor.session.setValue(d.code.toString()) 而不是 html。

或者简单地将选项传递给 ace.edit

var editor = ace.edit(null, {
    theme: "ace/theme/monokai",
    mode: "ace/mode/javascript",
    value: d.code.toString(),
});

然后将 editor.container 附加到 dom

editor.container.id = "editor"
$('#view').append(editor.container)