2012-06-04 4 views
12

Я пытаюсь добавить ace editor в свое приложение. Я скачал его из GitHub, уронил «/ Библиотеку/ас аса» каталог в папку моего приложения, включен:Ace editor "define не определен"

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

в моем теле тега и:

editor = ace.edit "editor" 

в моем теге сценария. Я попытался загрузить страницу в Chrome и Firefox, и я получил определение «define не определено» в ace.js: 46. Линия в ace.js является:

define(function(require, exports, module) { 

Кто-нибудь знает, почему туз ожидал определить функцию(), чтобы существовать и почему он не найдя его? Вот мой источник:

<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

Я вижу тег div с идентификатором «редактора» в фрагменте выше. Ты не? Я сделал обновление, чтобы исправить неправильное форматирование в моем исходном сообщении, возможно, вы видели это. В моем фактическом коде (до того, как я разделил его на простой пример выше), я скопировал стиль из приведенного выше примера и импортировал его, но похоже, что когда я удалил приложение только до кодового кода, я вытащил его слишком. В ближайшее время я попытаюсь изменить свой пример и обновить его. – Stinky

+0

У меня такая же проблема ... Вы когда-нибудь поняли? – orokusaki

+0

Нет, извините. Я решил, что это не стоит моего времени. Удачи. – Stinky

ответ

7

Если у вас уже есть источник, то это довольно легко сделать. Просто зайдите в каталог, в котором вы скопировали весь источник туза.

Затем, сделайте следующее:

npm install 
node Makefile.dryice.js 

Смотреть вики для получения дополнительной информации https://github.com/ajaxorg/ace/wiki/Building-ace

+1

Спасибо. Я забыл создать код, и ваш комментарий напомнил мне об этом. К сожалению. ☺ –

+0

+1 cuz, welp, я сделал то же самое – jakev

4

Вы получаете эту ошибку, потому что RequireJS JavaScript библиотеки не был включен в вашей странице.

Чтобы исправить это, используйте либо сборку туза, либо включите RequireJS на свою страницу.

Если вы решите включить RequireJS ваш HTML-фрагмент будет выглядеть примерно так:

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

я взломал его, поместив window.define = ace.define; в мой обработчик DOMload.

-3

В качестве альтернативы вы можете использовать CDN

И заменить

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

С чем-то вроде

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

Это никоим образом не затрагивает проблему – Pirijan

Смежные вопросы