Проблемы интеграции ACE Editor с приложением Keystonejs

Здесь (http://ace.c9.io/#nav=embedding) сказано, что скопируйте один из подкаталогов src* куда-нибудь в свой проект, я поместил его в mykeystoneapp/public/js (мой дом по умолчанию — mykeystoneapp/public)

Вот ошибки, которые я получаю:

1. Uncaught TypeError: $.cookie не является функцией (ui.js:8)

2. Неперехваченная ошибка: пропущен анонимный модуль define(): функция …(require.js:141) http://requirejs.org/docs/errors.html#mismatch

Вот мой Джейд-код:

script(src='/js/ace/demo/kitchen-sink/require.js')
script.
  require.config({paths: {ace: "/js/ace/build/src"}});
  define('testace', ['ace/ace'],
  function(ace, langtools) {
    console.log("This is the testace module");
    var editor = ace.edit("editor_container");
    editor.setTheme('eclipse');
    editor.session.setMode('javascript');
    require(["/js/ace/lib/ace/requirejs/text!src/ace"], function(e){
      editor.setValue(e);
    })
  });
  require(['testace']);

Во-вторых, если я поставлю отладчик в EventEmitter(https://github.com/ajaxorg/ace-builds/blob/master/src/ace.js#L3300) Я вижу, что он правильно достигает EventEmitter._dispatchEvent с eventName='changeMode', но возвращается без каких-либо операций, так как нет !listeners или defaultHandler


person ishandutta2007    schedule 01.06.2015    source источник


Ответы (1)


editor.session.setMode('javascript'); неверно, вместо этого должно быть editor.session.setMode('ace/mode/javascript');. То же самое для темы, которая должна быть ace/theme/eclipse.

ошибка в ui.js не связана с ace, так как ace не имеет файла с именем ui.

person a user    schedule 01.06.2015
comment
Это ничего не меняет, по-прежнему listeners = [] и defaultHandler=undefined. На самом деле я перепробовал все возможные комбинации путей, прежде чем задавать вопрос. Это правда, что require.js и ui.errors могут не быть частью ace, но ошибка исчезнет, ​​как только я закомментирую вызовы requirejs и ace. - person ishandutta2007; 02.06.2015
comment
Я думаю, что listeners = [] и defaultHandler=undefined - это нормально, я могу помочь вам отладить его, если вы дадите мне ссылку на онлайн-демонстрацию. - person a user; 02.06.2015
comment
Скрипт, который вы загружаете, это не ace.js, а его модифицированная версия, в строке 3283 есть неопределенная переменная eventName - person a user; 13.06.2015
comment
извините за нечистый код. отменил все экспериментальные изменения, теперь вы можете посмотреть - person ishandutta2007; 14.06.2015
comment
вы сейчас используете ace 0.1? используйте последнюю версию с github.com/ajaxorg/ace- builds/blob/master/src/ace.js и почему вы загружаете require.js? это не нужно для использования туза. - person a user; 15.06.2015
comment
Не требуется.config({paths: {ace: /js/ace/build/src}}); называя это? - person ishandutta2007; 15.06.2015
comment
это так, но почему вы так называете, если вы все равно используете готовую версию? - person a user; 15.06.2015
comment
Я вижу, теперь я понял. Мои вопросы могут показаться довольно наивными, так как я новичок, поэтому, пожалуйста, пока потерпите, так каковы плюсы и минусы использования предварительной версии по сравнению с библиотечной? И как будет выглядеть код для каждого случая? - person ishandutta2007; 16.06.2015
comment
Вот ссылка на репозиторий, с которым я пытаюсь интегрировать ace, на случай, если вам нужно оформить заказ на demostate.thanks. github.com/ishandutta2007/тест - person ishandutta2007; 16.06.2015
comment
см. github.com/ajaxorg/ace -builds/blob/v1.1.9/demo/ и github.com/ajaxorg/ace/blob/v1.1.9/demo/autoresize.html#L30-L63, если вы уже используете requirejs и у вас есть шаг сборки для модулей requirejs, вы можете использовать версия библиотеки, в противном случае используйте готовую версию - person a user; 16.06.2015
comment
пытался . не работает. На самом деле я начал только с этого примера. пожалуйста, проверьте мой обновленный толчок один раз, застрял на этом в течение длительного времени. - person ishandutta2007; 16.06.2015
comment
пробовал что? я не вижу никаких обновлений на 52.26.122.114:3000/editor, у него все еще есть версия с древним туз. - person a user; 16.06.2015
comment
древний как в ? github.com/ajaxorg/ace-builds/blob/master/src/ace.js — это используемый ace, и теперь вызовы выглядят так: var editor1 = ace.edit(editor_container); editor1.setTheme('туз/тема/сумерки'); editor1.session.setMode('ace/mode/javascript'); - person ishandutta2007; 17.06.2015
comment
а ты проверял ошибку? Теперь это Uncaught TypeError: невозможно прочитать свойство cssText из null - person ishandutta2007; 17.06.2015
comment
древний, как в github.com/ajaxorg/ace/blob /v0.2.0/build/src/ace.js, который очень старый. github.com/ajaxorg/ace-builds/blob/master/ src/ace.js и 52.26.122.114:3000/ js/ace/build/src/ace.js не совпадают - person a user; 17.06.2015
comment
Большое спасибо, вы должны были сказать об этом с самого начала, я потратил так много времени, ломая голову над этими ошибками. Я никогда не замечал, что использую репозиторий 4-летней давности. В любом случае спасибо :-) - person ishandutta2007; 18.06.2015
comment
хорошо, я сказал вам, что вы используете ace 0.1, как только вы показали мне свой код, но вы были слишком сосредоточены на ошибке cssText;) - person a user; 18.06.2015
comment
Эй, пользователь, небольшой вопрос. После того, как я начал работать с ace, как только я начал искать вдохновение, я обнаружил, что очень немногие сайты на самом деле используют редактор ACE, почти все, что я знаю, используют codemirror. Любая идея, почему это так? - person ishandutta2007; 23.07.2015
comment
Я думаю, это в основном потому, что Codemirror имеет лучшую документацию и может быть проще начать работу. - person a user; 23.07.2015
comment
Первоначально я подозревал, что причиной может быть лицензия, затем я обнаружил, что оба имеют лицензию MIT, затем я, хотя, возможно, производительность является проблемой для ace, но много гуглил, на данный момент даже это не кажется причиной, давайте подождем, пока я испытай это сам - person ishandutta2007; 24.07.2015
comment
ACE — это BSD, Codemirror — это MIT. - person ishandutta2007; 29.07.2015
comment
Как вы думаете, в этом причина различий? Обе эти лицензии очень разрешительны, поэтому я ожидаю, что это не сыграет большой роли. - person a user; 29.07.2015