Javascript 装载';主题';和';出口';使用Requirejs的Highcharts模块
我在requirejs.config函数中尝试了几种不同的路径和垫片属性配置,但似乎都没有加载gray.js主题和exporting.js模块。目前我有:Javascript 装载';主题';和';出口';使用Requirejs的Highcharts模块,javascript,jquery,highcharts,requirejs,amd,Javascript,Jquery,Highcharts,Requirejs,Amd,我在requirejs.config函数中尝试了几种不同的路径和垫片属性配置,但似乎都没有加载gray.js主题和exporting.js模块。目前我有: requirejs.config({ baseUrl: 'static/js', paths: { 'jquery' : 'jquery-1.7.2.min', 'highcharts' : ['HighCharts/highcharts', '
requirejs.config({
baseUrl: 'static/js',
paths: {
'jquery' : 'jquery-1.7.2.min',
'highcharts' : ['HighCharts/highcharts',
'HighCharts/themes/gray',
'HighCharts/modules/exporting']
},
shim: {
'highcharts': {
'exports': 'Highcharts',
'deps': ['jquery']
}
}
});
我做错了什么?我不能将gray.js和export.js分解成它们自己的路径,并将它们作为dep添加到highcharts垫片中,因为它们依赖highcharts
我正在考虑在路径中创建指向export.js的“highcharts”快捷方式,并将gray.js和highcharts.js设置为deps,但这似乎有点混乱。像下面这样。想法
requirejs.config({
baseUrl: 'static/js',
paths: {
'jquery' : 'jquery-1.7.2.min',
'highcharts' : 'HighCharts/modules/exporting',
'highcharts-theme': 'HighCharts/themes/gray',
'highcharts-module': 'HighCharts/highcharts'
},
shim: {
'highcharts-module': {
'exports': 'Highcharts',
'deps': ['jquery']
},
'highcharts': {
'deps': ['highcharts-module', 'highcharts-theme']
}
}
});
更新:
我的网页html(缩写):
require(['jquery'、'domReady'、'highcharts'],函数($,domReady,highcharts){
domReady(函数(){
//在这里画图表的东西
});
});
稍微简单一点也许:
requirejs.config({
baseUrl: 'static/js',
paths: {
'jquery' : 'jquery-1.7.2.min',
'highcharts' : 'HighCharts/modules/exporting',
},
shim: {
'HighCharts/highcharts': {
'exports': 'Highcharts',
'deps': ['jquery']
},
'highcharts': {
'deps': ['HighCharts/highcharts', 'HighCharts/themes/gray']
}
}
});
我最终实现了以下解决方案@Lyn Headley,您的解决方案没有解决highcharts.js在主题之前需要加载的依赖关系,但再次感谢您澄清了路径回退语法
requirejs.config({
baseUrl: 'static/js',
paths: {
'jquery' : 'jquery-1.7.2.min',
'highcharts' : 'HighCharts/modules/exporting',
'highcharts-theme': 'HighCharts/themes/gray',
'highcharts-module': 'HighCharts/highcharts'
},
shim: {
'highcharts-module': { // This allows users to only import highcharts
'exports': 'Highcharts', // without theme or exporting module.
'deps': ['jquery']
}, // Make sure highcharts.js is loaded
'highcharts-theme': ['highcharts-module'], // before the theme is.
'highcharts': {
'deps': ['highcharts-module', 'highcharts-theme'],
'exports': 'Highcharts' // Still gotta make this available
}
}
});
你可以这样做
define(['highcharts-theme'],function( ...
或者如果你需要没有主题的东西
define(['highcharts'],function( ...
你的主html和主js文件中有什么?定义在哪里?这一行:“‘highcharts’:[‘highcharts/highcharts’,‘highcharts/themes/gray’,‘highcharts/modules/exporting’]不表示依赖关系,而是表示‘路径回退’——啊,感谢您对路径回退的澄清。我看到其他人这样做,就像,我在文档中没有看到这样的依赖关系-因为它们不是,哈。我使用我的第二个配置示例得到了一些有用的东西。它有点像反向依赖。如果没有人想出更漂亮的东西,我会发布这个答案。你看过这个相关的主题吗:这个设置的问题是主题可以在highcharts.js之前加载。我还发现您必须在“highcharts”垫片本身上指定导出,而不是highcharts/highcharts垫片。
deps
是字符串数组,而不是字符串。当有一个依赖关系的时候,我总是会被绊倒,而我却忘记了。
define(['highcharts-theme'],function( ...
define(['highcharts'],function( ...