我使用以下代码通过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,
    // ...
};


..and角,您将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

关于javascript - 使用带有缩进的angular-ui-codemirror进行代码美化,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30827626/

10-12 17:44