2013-07-06 24 views
5

Desidero raggruppare ACE Editor con l'applicazione desktop e visualizzarlo all'interno di WebView. Ace è in esecuzione dal protocollo file:///. C'è un modo per ospitare i file Mode separatamente da ace.js? Ad esempio, ace.js si troverà all'interno del pacchetto di applicazioni /Application/MyApp.app/..., ma i file di modalità su ~/Library/Application Support/MyApp/ace/modes.File modalità host separatamente da Ace Editor

Ho iniziato con progetto di test e hanno il seguente codice

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

Mi aspetto che il modulo ace/mode/javascript verrà caricato da /Users/user/ace-build/javascript ma carichi da ace/mode-javascript.js. Come si caricano le modalità da una posizione diversa?

risposta

2

uso

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

se ext-* e altri file sono nella stessa cartella si può fare .set("basePath", ..) invece

+0

Grazie mille. Funziona. L'unica cosa è che nel mio caso era richiesta la chiamata di livello superiore, quindi devo usare la versione asincrona. Il codice finale è questo http://pastebin.com/eKw2dC1i –

Problemi correlati