2013-07-06 37 views
5

我想將ACE Editor與桌面應用程序捆綁在一起並在WebView中呈現它。 Ace從file:///協議運行。是否有任何方法可以與ace.js分開託管模式文件?例如ace.js將位於應用程序包/Application/MyApp.app/...內,但模式文件位於~/Library/Application Support/MyApp/ace/modes主機模式文件與Ace編輯器分開

我開始與測試項目,並有下面的代碼

<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> 

我希望模塊ace/mode/javascript將從/Users/user/ace-build/javascript被加載,但它從ace/mode-javascript.js加載。如何使模式從不同的位置加載?

回答

2

使用

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

如果ext-*和其他文件都在同一個文件夾,你可以做.set("basePath", ..)代替

+0

非常感謝。有用。唯一的事情就是在我的情況下,它是頂級需求調用,所以我必須使用異步版本。最終的代碼是這個http://pastebin.com/eKw2dC1i –