我正在尝试将jqplot作为 requireJS 模块加载。
我main.js
的路径和垫片是这样的:
require.config({
, paths: {
plot: '../js/plugins/jqplot/jqplot.module'
}
, shim: {
'plot': { deps: ['jquery']}
}
});
由于大多数页面不需要这个模块,我正在等待pageXYZ被加载,然后在 a<script></script>
中,我正在调用:
require(['plot'],
function (plot) {
// do stuff
}
);
我的jqplot.module
样子是这样的:
define(['../js/plugins/jqplot/jquery.jqplot'],
function () {
require([
'../js/plugins/jqplot/plugins/jqplot.barRenderer'
, '../js/plugins/jqplot/plugins/jqplot.logAxisRenderer'
, '../js/plugins/jqplot/plugins/jqplot.categoryAxisRenderer'
, '../js/plugins/jqplot/plugins/jqplot.canvasAxisTickRenderer'
, '../js/plugins/jqplot/plugins/jqplot.canvasTextRenderer'
, '../js/plugins/jqplot/plugins/jqplot.pointLabels'
, '../js/plugins/jqplot/plugins/jqplot.enhancedLegendRenderer'
],
function (){
return $.jqplot;
}
);
}
);
它返回正确的对象,其中包含所有已定义且可用的子插件。
但是,我的Do stuff代码运行之前 jqplot
被分配给$
,所以当我的代码运行时我仍然遇到未定义的错误(我假设,因为文件都已加载,所以 requirejs 开始运行)
问题:
在将 jqplot 分配给 $ 之前,我可以做些什么来暂停代码执行?