2013-07-06 3 views
5

ACE 편집기를 데스크톱 응용 프로그램과 함께 묶어 WebView 내부로 렌더링하려고합니다. 에이스는 file:/// 프로토콜에서 실행 중입니다. ace.js과 별도로 모드 파일을 호스팅 할 수있는 방법이 있습니까? 예를 들어 ace.js은 응용 프로그램 번들 /Application/MyApp.app/... 안에 있지만 모드 파일은 ~/Library/Application Support/MyApp/ace/modes에 있습니다. Ace 편집기와 별도로 호스트 모드 파일

나는 시험 프로젝트를 시작하고 난 그 모듈 ace/mode/javascript/Users/user/ace-build/javascript에서로드 할 것으로 예상하지만 ace/mode-javascript.js에서로드 다음 코드

<script type="text/javascript"> 
    var require = { 
     baseUrl: window.location.protocol + "//" + window.location.host 
       + window.location.pathname.split("/").slice(0, -1).join("/"), 
     paths: { 
      "ace/mode": "/Users/user/ace-build", 
     } 
    }; 
</script> 
<script type="text/javascript" src="require.js"></script> 
<script type="text/javascript" src="ace/ace.js"></script> 
<script type="text/javascript"> 
    require(["ace/ace"], function(ace){ 
     var editor = ace.edit("editor-container"); 
     editor.getSession().setUseWorker(false); 
     editor.setTheme("ace/theme/xcode"); 
     editor.getSession().setMode("ace/mode/javascript"); 
    }); 
</script> 

있습니다. 다른 위치에서 모드를로드하는 방법은 무엇입니까?

답변

2

ext-* 및 기타 파일이 같은 폴더에있는 경우 .set("basePath", ..) 대신

+0

덕분에 많은 작업을 수행 할 수 있습니다

require("ace/config").set("modePath", require.toUrl("ace/mode")) 

사용. 그것은 작동합니다. 유일한 것은 내 경우에는 최상위 수준의 호출이므로 비동기 버전을 사용해야합니다. 최종 코드는 http://pastebin.com/eKw2dC1i입니다. –