使用require.js加载Highcharts

时间:2011-11-18 16:58:55

标签: jquery highcharts requirejs

我已经尝试了一段时间,但却没有成功将高图作为require模块加载。我想知道是否有人设法让这个工作,或者他们是否有任何指示让我走上正确的轨道?

谢谢

4 个答案:

答案 0 :(得分:41)

使用require.js 2.1.0+时,不需要插件。您可以使用shim包含Highcharts:

require.config({
  paths: {
    require: "libs/require",
    jquery: "libs/jquery",
    highcharts: "libs/highcharts"
  },
  shim: {
    highcharts: {
      exports: "Highcharts",
      deps: ["jquery"]
    }
  } // end Shim Configuration
});

答案 1 :(得分:1)

我刚刚按照以下方式工作:

  1. 在顶部添加:

    define(['jquery'], function (jQuery) {
    
  2. 在最后添加:

    return window.Highcharts; });

  3. 这假设你已经定义了jquery,例如

    require.config({
        paths: {
            'jquery': 'http://ajax.googleapis.com/ajax/libs/jquery/1.7.0/jquery.min'
         }
    });
    

    对于大多数第三方库,您可以遵循此一般方法。例如,我为jquery.tmpl.js和knockout.js做了这个。

答案 2 :(得分:1)

使用最近的use.js plugin绝对是可行的方法。按照我之前的答案中的建议编辑第三方库是可维护性的一个难题。

答案 3 :(得分:0)

最近的带有模块(JSFiddle example)的Highcharts方法的最小示例:

require.config({
    paths: {
        highcharts: "https://code.highcharts.com/highcharts",
        highcharts_exporting: "https://code.highcharts.com/modules/exporting"
    }
});

require(['highcharts', 'highcharts_exporting'], function(Highcharts, exporting) {
    exporting(Highcharts); // We need to initialize module files and pass in Highcharts

    Highcharts.chart('container', {
        series: [{
            data: [43934, 52503, 57177, 69658, 97031, 119931, 137133, 154175]
        }, {
            data: [24916, 24064, 29742, 29851, 32490, 30282, 38121, 40434]
        }]
    });
});

有关用法说明,请参见this Highcharts documentation