我试图通过动态更改路径来显示标记ckeditor。它最初设置但如果打开一个标志我尝试更改它。 当我不改变路径时,垫片工作正常并且ckeditor得到解决。当我在检查标志后更改路径时,ckeditor未定义。
config.js
require.config({
paths: {
...
ckeditor_core: 'lib/ckeditor/ckeditor',
...
},
shim: {
...
ckeditor_core: {
exports: 'CKEDITOR'
},
...
}
});
if (jx && jx.activeFeatures && !jx.activeFeatures.CKEDITOR_4) {
require.config({
map : {
'*' : {
'ckeditor_core' : ''lib/ckeditor-old/ckeditor''
}
});
}
}
define({});
我尝试在几个不同的地方对地图进行此更改,但我总是遇到同样的问题:
TypeError: ckeditor is undefined
对我而言,在我再次设置路径之后,似乎垫片已经破裂。当我在控制台时,我能够很好地解决CKEDITOR。
感谢您的帮助!
答案 0 :(得分:1)
这是您使用的map
配置:
map: {
'*': {
'ckeditor_core': 'lib/ckeditor-old/ckeditor'
}
}
当此地图生效且RequireJS遇到模块ckeditor_core
的请求时,它首先要做的是用lib/ckeditor-old/ckeditor
请求替换此请求。然后RequireJS检查垫片。由于lib/ckeditor-old/ckeditor
没有为其定义填充程序,但这是需要填充程序的模块,因此模块的值为undefined
。你需要做的是为它添加一个垫片:
'lib/ckeditor-old/ckeditor': {
exports: 'CKEDITOR'
},