Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/476.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 装载';主题';和';出口';使用Requirejs的Highcharts模块_Javascript_Jquery_Highcharts_Requirejs_Amd - Fatal编程技术网

Javascript 装载';主题';和';出口';使用Requirejs的Highcharts模块

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函数中尝试了几种不同的路径和垫片属性配置,但似乎都没有加载gray.js主题和exporting.js模块。目前我有:

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( ...