1

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);
});

空の入力結果の例: ここに画像の説明を入力

糸くずメッセージ: ここに画像の説明を入力

空の入力のリンティングを無効にするドキュメントには何も表示されません。簡単なものがありませんか?

4

2 に答える 2

3

お役に立てれば:

    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() );

これは次のように翻訳されます:

< yourCodeMirrorInstance >.setOption('< yourOption >',< true/false または必要な値 >)

これが誰かに役立つことを願っています。

于 2016-11-17T15:11:31.593 に答える
0

このようにテキストエリアにデフォルト値を設定できます

{\n\t\n}

あなたはこのようなものを持っているでしょう

{

}
于 2016-05-04T15:12:06.937 に答える