我正在为JSON编写一个快速的CodeMirror输入,并确保用户不会搞砸,我使用的是json-lint插件。我的问题是,在渲染时,空的CodeMirror输入显示lint错误。我知道空输入不构成有效的JSON,但我只是在输入完成后才会运行。
我正在使用addon/lint/json-lint.js
插件,后者又使用jsonlint
封装。
JS
var jsonConfig = {
mode: 'application/json',
lineNumbers: true,
lint: true,
autoCloseBrackets: true,
gutters: ['CodeMirror-lint-markers']
};
$('.json textarea').each(function (pos, el) {
CodeMirror.fromTextArea(el, jsonConfig);
});
我无法在文档中看到任何禁用空输入linting的内容。我错过了一些简单的东西吗?
答案 0 :(得分:2)
希望这会有所帮助:
var editor_json = CodeMirror.fromTextArea(document.getElementById("textAreaId"), {
lineNumbers: true,
mode: "application/json",
gutters: ["CodeMirror-lint-markers"],
lint: true,
theme: '<yourThemeName>'
});
//on load check if the textarea is empty and disable validation
editor_json.setOption("lint", editor_json.getValue().trim() );
//once changes happen, if the textarea gets filled up again re-enable the validation
editor_json.on("change", function(cm, change) {
editor_json.setOption("lint", editor_json.getValue().trim() );
});
///sometimes you need to refresh the CodeMirror instance to fix alignment problems or some other glitch
setTimeout(function(){
editor_json.refresh();
},0);
简而言之:
editor_json.setOption("lint", editor_json.getValue().trim() );
将其翻译为:
&LT; yourCodeMirrorInstance&gt; .setOption(&#39;&lt; yourOption&gt;&#39;,&lt; true / false或任何所需的值&gt;)
希望这对某人有所帮助。
答案 1 :(得分:0)
您可以像这样设置textarea的默认值
{\n\t\n}
你会有这样的东西
{
}