javascript - 将 Highcharts 与 Curljs 集成的最佳方式是什么?

标签 javascript jquery highcharts amd curljs

背景

我正在寻找一种替代当前技术的方法,用于通过我的curljs 模块加载highcharts.js。目前我正在以这种方式加载所需的库:

define("Test", ["jquery",
    "js!https://code.highcharts.com/highcharts",
    "js!https://code.highcharts.com/highcharts-more",
    "js!https://code.highcharts.com/modules/exporting"],

function ($, hchart, hchartmore, hchartexp) {
    var testFunc = function () {
        return {
            markup: function () {
                $("#mixer").html("did it");
            },
            chartIt: function () {
                window.chart = new Highcharts.Chart({

               // do the highchart configs});
    };


    return testFunc;
});

目前此方法有效,您可以引用我的 jsfiddle demoing my current solution .

我尝试使用 js! 插件填充 Highchart,并按照curl 文档的指定创建一个curl 配置对象:

curl = {
    baseUrl: "",
    paths: {
        "jquery": "https://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.1/jquery.min.js",
        "hchart": "js!https://code.highcharts.com/highcharts",
        "hchartmore":"js!https://code.highcharts.com/highcharts-more",
        "hchartmore":"js!https://code.highcharts.com/modules/exporting"}
}; 

但是当curl 尝试读取 highchart.js 文件时,我收到“define() 丢失或重复”错误。

那么我的问题是,即使我的解决方案有效,它是否合适?有替代方案吗?

最佳答案

尝试使用curl.js 的旧版加载器。它非常适合全局脚本,例如 highcharts。

var hchartBase = "https://code.highcharts.com/";
var hchartCfg = {
    loader: "curl/loader/legacy",
    exports: "Highcharts"
};
curl.config({
    baseUrl: "",
    paths: {
        "curl": "your/path/to/curl/curl.js",
        "jquery": "https://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.1/jquery.min.js",
        "hchart": { location: hchartBase + "highcharts", config: hchartCfg },
        "hchartmore": { location: hchartBase + "highcharts-more", config: hchartCfg },
        "hchartexp": { location: hchartBase + "modules/exporting", config: hchartCfg }
    }
});

请注意,我包含了一个 curl 路径。这是curl 查找旧版加载程序所必需的。

通常情况下,您不会对所有三个库使用相同的旧配置,但由于我无法判断 highcharts-more 和导出库是否未声明curl 可以代表您导出的任何有用的全局变量,所以我只是对所有三个使用相同的配置。

更多信息在这里:https://github.com/cujojs/curl/tree/master/src/curl/loader

关于javascript - 将 Highcharts 与 Curljs 集成的最佳方式是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27785677/

相关文章:

javascript - 带区域颜色填充和 y 轴的负色

javascript - Jeep-sqlite 加载程序未在网络中运行

javascript - 了解 JS 引擎如何循环获取数组元素的索引

javascript - jQuery/HTML5 Facebook 时间轴像粘性标题

jquery - 通过 ID 使用元素而不先声明 ID

javascript - 图形从轴+网格线开始

javascript - 如何让IE不缓存我的页面?

javascript - Node.js promise 不强制函数的顺序执行

javascript - 使用 jQuery 插件触摸事件不触发 AJAX -- Hammer.js

javascript - 我可以在 Highcharts 图表中添加一条 "average"线吗?