【发布时间】:2016-11-28 04:18:11
【问题描述】:
所以我正在使用 jquery.flot 和 jquery.flot.selection 并且由于 define({... 异步加载模块我遇到了问题,因为选择插件试图将自己推入 $.plot.plugins (由 jquery.flot 创建),但此时 $.plot.plugins 仍未定义。
我发现 require.config 中的“shim”参数应该可以帮助我解决这个问题,但我没有运气...... 所以这里是破败... jquery.flot 创建 $.plot jquery.flot.selection 将自身添加到 $.plot.plugins
我试过的……
shim:{
'js/lib/jquery.flot':{
exports:'$.plot'
},
'js/lib/jquery.flot.selection':{
deps:['js/lib/jquery.flot']
}
}
还有
shim:{
'js/lib/jquery.flot.selection':['js/lib/jquery.flot']
}
我的插件看起来像这样..
define(['jquery','lib/jquery.flot','lib/jquery.flot.selection'], function() {
(function($) {
// jQuery plugin definition
.....
我也试过了
define(['jquery'],function(){
require[('js/lib/jquery.flot.selection'],function(){
//jQuery plugin definition
...
我该怎么办???
【问题讨论】:
-
原来我使用的是 RequireJs 1.0.4,所以我不能依赖 shim...我该怎么办?
-
Shim 的灵感来自 Use.js,它是 1.x 的插件 - tbranyen.com/post/…
-
太棒了!所以我将此添加到我的插件“define(["jquery","lib/jquery.flot","lib/use!lib/jquery.flot.selection"]," 并将其添加到我的本地 require "paths:{ 。 ..使用:'../../../../otherDirec/src/main/webapp/js/lib/use'},使用:{“../../../../otherDirec /src/main/webapp/js/lib/jquery.flot.selection":{ deps:["使用!../../../../otherDirec/src/main/webapp/js/lib/jquery .flot"] } }" 并且我仍然收到一条错误消息,提示模块'lib/jquery.flot.selection'未定义或没有
use配置。确保它存在,添加use配置,或者不要'不要使用 use! 就可以了 -
我应该关闭它并打开另一个关于解决 use.js 设置问题的主题吗?
-
可能会更简单,等你有我去看看
标签: javascript requirejs flot shim