ACE编辑器+ requirejs + AMD jquery插件:无法加载模式

时间:2013-12-08 12:17:23

标签: jquery jquery-plugins requirejs ace-editor

我正在使用此版本的ACE - git://github.com/ajaxorg/ace.git

这是我通过requirejs加载它,

require([
    // Load our app module and pass it to our definition function
    'jquery',
    'ext/ace-master/lib/ace/ace'
...

我是如何唤起编辑的,

var editor = ace.edit("ace-editor");
editor.setTheme("ext/ace-master/lib/ace/theme/eclipse");
editor.getSession().setMode("ext/ace-master/lib/ace/mode/xml");

但我总是收到此错误消息,并且语法高亮显示不会突出显示表单中的任何代码,

Could not load worker
ace.js (line 1)
TypeError: this.$mode.createWorker is not a function


...ts","module","ace/lib/lang"],function(a,b,c){var d=a("../lib/lang"),e=function()...


TypeError: a.getTokenizer is not a function


...ts","module","ace/lib/lang"],function(a,b,c){var d=a("../lib/lang"),e=function()...

有没有人遇到过这个问题而且知道如何修复它?

如果我使用此版本 - https://github.com/ajaxorg/ace-builds/,则会出现更多错误 - 找不到文件等。

或此http://d1n0x3qji82z53.cloudfront.net/src-min-noconflict/ace.js - 很多未找到的错误!

注意:顺便说一句,通过 jquery ajax 加载表单,是导致错误的ajax吗?

3 个答案:

答案 0 :(得分:2)

你有miconfigured require path

添加

require.config({paths: {
    ace: "ext/ace-master/lib/ace"
}})

在第一次要求之前 并使用setMode("ace/mode/xml");

请参阅http://jsbin.com/ojijeb/339/edit了解工作版

答案 1 :(得分:1)

是的,您的AJAX正在加载您的表单,其余的Javascript已经完成。

您可以使用相同的功能重新加载您的Javascript,但我不确定可能会出现什么样的冲突,因为您的代码并非真的在这里。

我遇到了类似的问题并且为了克服它,我在我请求的HTML中包含了Javascript。值得深思。

答案 2 :(得分:0)

最终使用了这个构建版本 - https://github.com/ajaxorg/ace-builds/