2014-01-17 3 views
8

저는 Ace Editor를 사용하기 시작했습니다. doc에 따르면 편집기는 일반 텍스트 모드를 지원하며 다른 모든 언어 모드는 필요에 따라로드 된 별도 모듈로 사용할 수 있습니다. " 이것은 JavaScript 모드가 설정된 방법입니다. editor.getSession().setMode("ace/mode/javascript"); 이것은 구문 강조 표시에만 사용됩니다. 내 경우Ace-Editor JSON 자동 형식/들여 쓰기

내가 JSON 함께 일하고 - editor.getSession().setMode("ace/mode/json")

는 내가 달성하기 위해 시도하고

  • 표시 멋지게 형식의 JSON 응답입니다

문제

입니다
  • 에이스 편집기가 문자열로 변환 할 수있다 editor.setValue()에 JS 개체 또는 JSON을 처리 할 수없는 것

질문

  • 방법에 내가 설정 자동 형식/들여 쓰기를 할 <div id="editor"></div>에있는 문자열?

HTML :

<div id="editor"></div>

SCRIPT :jsonDoc 당신의 추가 매개 변수를 사용하여 JSON 문자열을 포맷하려면 서버

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

답변

26

에서 데이터입니다 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 파일에서 표시 옵션을 전환 할 수도 있습니다.

+25

다른 언어로 어떻게 할 수 있습니까? –