2012-06-04 17 views
12

Sto provando ad aggiungere il ace editor alla mia app. Ho scaricato da github, lasciato cadere la directory "asso/lib/asso" nella directory di mia app, incluso:L'editor Ace "define non è definito"

<script src="ace/lib/ace/ace.js" type="text/javascript" charset="utf-8"></script>" 

nel mio tag corpo e:

editor = ace.edit "editor" 

nel mio tag script. Ho provato a caricare la pagina in Chrome e Firefox e ottengo "define is not defined" in ace.js: 46. La linea in ace.js è:

define(function(require, exports, module) { 

Qualcuno sa perché asso si aspetta la funzione() di esistere definire e perché non è trovarlo? Ecco la mia fonte:

<html> 
    <body> 
    <div id="editor">some text</div> 
    <script src="ace/lib/ace/ace.js" type="text/javascript" charset="utf-8"></script> 
    <script> 
     var editor = ace.edit("editor"); 
    </script> 
    </body> 
</html> 
+0

Vedo un tag div w/un id di "editor" nello snippet sopra. Tu non? Ho aggiornato per correggere la cattiva formattazione nel mio post originale, potresti averlo visto. Nel mio codice attuale (prima di ridurlo al semplice esempio precedente) ho copiato lo stile dall'esempio linkato sopra e l'ho importato, ma sembra che quando ho spogliato la mia app fino al solo codice asso, l'ho tirato fuori pure. Proverò a cambiare il mio esempio e aggiornerò qui presto. – Stinky

+0

Sto avendo lo stesso problema ... Hai mai capito? – orokusaki

+0

No, mi dispiace. Ho deciso che non valeva la pena il mio tempo. In bocca al lupo. – Stinky

risposta

7

Se si dispone già dell'origine, è ancora molto semplice fare ancora. Basta andare nella directory in cui hai copiato tutta la fonte asso.

Poi, do:

npm install 
node Makefile.dryice.js 

consultare il wiki per ulteriori dettagli https://github.com/ajaxorg/ace/wiki/Building-ace

+1

Grazie. Ho dimenticato di creare effettivamente il codice e il tuo commento mi ha ricordato di farlo. Ops. ☺ –

+0

+1 cuz, welp, ho fatto lo stesso – jakev

4

State ottenendo questo errore perché il RequireJS libreria JavaScript non è stato incluso nella tua pagina.

Per risolvere questo problema utilizzare una build asso o includere RequireJS nella pagina.

Se si sceglie di includere RequireJS tuo frammento di HTML sarà simile a questo:

<!-- Editor will go here --> 
<div id="editor"></div> 

<!-- Load RequireJS --> 
<script src="lib/requirejs/require.js"></script> 

<!-- Initialize ace --> 
<script> 

    // Tell RequireJS where ace is located 
    require.config({ 
     paths: { 
      'ace': 'lib/ace' 
     } 
    }); 

    // Load the ace module 
    require(['ace/ace'], function(ace) { 
     // Set up the editor 
     var editor = ace.edit('editor'); 
     editor.setTheme('ace/theme/monokai'); 
     editor.getSession().setMode('ace/mode/javascript'); 
     // etc... 
    }); 
</script> 
3

ho inciso che mettendo window.define = ace.define; nel mio gestore DOMload.

-3

In alternativa è possibile utilizzare un CDN

e sostituire

<script src="/ace-builds/src-noconflict/ace.js" type="text/javascript" charset="utf-8"></script> 

con qualcosa di simile

<script src="http://cdnjs.cloudflare.com/ajax/libs/ace/1.1.3/ace.js" type="text/javascript" charset="utf-8"></script> 
+0

Questo non risolve il problema in alcun modo – Pirijan