我在我的项目中使用RequireJS来加载我的JS依赖项。
这是我的配置文件:
require.config({
'baseUrl' : '/js',
'paths' : {
'angular' : 'dependencies/angular',
'cm' : 'dependencies/codemirror',
'marked' : 'dependencies/marked',
'jquery' : 'dependencies/jquery',
'sails' : 'dependencies/sails.io',
'uikit' : 'dependencies/uikit/js/uikit'
},
'config' : {
'uikit' : {
'base' : 'dependencies/uikit/js'
}
},
'shim' : {
'angular' : {
exports : 'angular'
},
'cm/lib/codemirror' : {
exports : 'codemirror'
},
'jquery' : {
exports : 'jquery'
},
'sails.io' : {
deps : ['socket.io'],
exports : 'io'
},
'uikit' : {
deps : ['jquery', 'cm/lib/codemirror']
}
}
});
define([
'angular',
'uikit!htmleditor',
'cm/lib/codemirror',
'cm/addon/mode/overlay',
'cm/mode/markdown/markdown',
'cm/mode/xml/xml',
'cm/mode/gfm/gfm',
'marked'
], function(angular, uikit, CodeMirror) {
var htmleditor = uikit.htmleditor(document.getElementById("formNewArticleTextarea"), {
markdown : true,
mode : 'tab'
})
});
问题是,每次重新加载页面时,UIKit HTMLEditor插件都会返回此错误:
Uncaught ReferenceError: CodeMirror is not defined
答案 0 :(得分:0)
CodeMirror和Mergely遇到了同样的问题。
尝试将CodeMirror故意放入init函数顶部的全局(窗口)范围。请参阅"添加此行"下面:
define([
'angular',
'uikit!htmleditor',
'cm/lib/codemirror',
'cm/addon/mode/overlay',
'cm/mode/markdown/markdown',
'cm/mode/xml/xml',
'cm/mode/gfm/gfm',
'marked'
], function(angular, uikit, CodeMirror) {
window.CodeMirror = CodeMirror; // <-- Add this line
var htmleditor = uikit.htmleditor(document.getElementById("formNewArticleTextarea"), {
markdown : true,
mode : 'tab'
})
});