2012-06-04 18 views
12

Estoy tratando de agregar el ace editor a mi aplicación. He descargado desde github, cayó el directorio "as/lib/as" en el directorio de mi aplicación, incluidos:Ace editor "definir no está definido"

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

en mi cuerpo de la etiqueta y:

editor = ace.edit "editor" 

en mi etiqueta de script. Intenté cargar la página en Chrome y Firefox y me aparece "definir no está definido" en ace.js: 46. La línea en ace.js es:

define(function(require, exports, module) { 

¿Alguien sabe por qué ACE está a la espera de la función() de existir definir y por qué no es encontrarlo? Aquí está mi fuente:

<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

Veo una etiqueta div con una identificación de "editor" en el fragmento de arriba. ¿Tú no? Actualicé para corregir el formato incorrecto en mi publicación original, es posible que haya visto eso. En mi código actual (antes de desglosarlo en el sencillo ejemplo anterior) copié el estilo del ejemplo vinculado anterior e importé eso, pero parece que cuando desgasté mi aplicación solo en el código ace, lo saqué también. Trataré de cambiar mi ejemplo y actualizarlo aquí pronto. – Stinky

+0

Tengo el mismo problema ... ¿Alguna vez lo entendiste? – orokusaki

+0

No, lo siento. Decidí que no valía la pena el tiempo. Buena suerte. – Stinky

Respuesta

7

Si ya tiene la fuente, entonces es bastante fácil de hacer todavía. Solo ingrese en el directorio donde copió toda la fuente ace.

Entonces, hacer:

npm install 
node Makefile.dryice.js 

Véase el wiki para obtener detalles adicionales https://github.com/ajaxorg/ace/wiki/Building-ace

+1

Gracias. Olvidé construir el código y tu comentario me recordó que lo hiciera. Oops. ☺ –

+0

+1 primo, welp, hice lo mismo – jakev

4

Usted está recibiendo este error porque el RequireJS JavaScript biblioteca no se ha incluido en su página.

Para solucionar esto, utilice una compilación as o incluya RequireJS en su página.

Si elige incluir RequireJS su fragmento de HTML se verá algo como esto:

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

Pirateé por poner window.define = ace.define; en mi manejador DOMload.

-3

Alternativamente, puede utilizar un CDN

y vuelva a colocar

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

Con algo así como

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

Esto no resuelve el problema de ninguna manera – Pirijan