我刚开始使用Ace Editor。根据{{3}} “,编辑器支持纯文本模式。所有其他语言模式都可以作为单独的模块使用,按需加载......” ,这是如何设置JavaScript模式editor.getSession().setMode("ace/mode/javascript");
这仅适用于突出显示语法。
就我而言,我正在使用JSON - editor.getSession().setMode("ace/mode/json")
我想要实现的是
问题
editor.setValue()
必须将其转换为字符串问题
<div id="editor"></div>
?HTML:
<div id="editor"></div>
SCRIPT: jsonDoc
是来自服务器的数据
$scope.getData = function (jsonDoc) {
var editor = ace.edit("editor");
editor.getSession().setMode("ace/mode/json");
editor.setTheme("ace/theme/twilight");
editor.getSession().setTabSize(2);
editor.getSession().setUseWrapMode(true);
editor.setValue(JSON.stringify(jsonDoc));
};
答案 0 :(得分:41)
要格式化JSON字符串,您可以使用JSON.stringify
的其他参数。尝试像
editor.setValue(JSON.stringify(jsonDoc, null, '\t'));
第三个参数用于每个级别的缩进。 (可能在不同的实现中有所不同)。有关示例,请参阅https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify。
您还可以从ace.js文件切换显示选项。