我正在使用此版本的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吗?
答案 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/。