使用 angular-ui-codemirror with indention 进行代码美化

Code Beautification with angular-ui-codemirror with indention

我使用以下代码jquery生成了xml代码,

var _outerBlock = $("<outerBlock>");
for (var i = 0; i < 10; i++) {
  var _innerBlock = $("<innerBlock>Serial " + i + "</innerBlock>")
  _outerBlock.append(_innerBlock)
}
var _tmp = $("<div>");
var $output = _tmp.html();

现在我在 $output 变量中得到一行 xml 代码。我尝试使用 codemirror.js 来美化这段代码,它应用了样式,但没有添加缩进。

这里是我从浏览器控制台使用纯 codemirror.js

尝试的内容
var myCodeMirror = CodeMirror(document.body, {
  value: code,
  mode:  "text/html",
  lineNumbers:true
});

如何使用缩进?如何使用 angular-ui-codemirror 显示代码?

为了正确 xml 语法缩进,您需要包含

<script type="text/javascript" src="codemirror/mode/xml/xml.js"></script>

(xml 模式 js 文件的路径可能不同,但无论如何你都需要这样定义..)

然后你像这样使用它:

config = {
    mode : "xml",
    htmlMode: true,
    // ...
};

..在 angular 中,您将 ui-codemirror 附加到您需要的任何元素。

在 angular 中,设置的方式有所不同:

myAppModule.controller('MyController', [ '$scope', function($scope) {
$scope.editorOptions = {
    lineWrapping : true,
    lineNumbers: true,
    readOnly: 'nocursor',
    mode: 'xml',
};

}]);

..和

<ui-codemirror ui-codemirror-opts="editorOptions"></ui-codemirror>

来源/进一步阅读:

https://libraries.io/bower/angular-sdco-tools

CodeMirror HTML mode not working

https://github.com/angular-ui/ui-codemirror/blob/master/README.md