首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Qlik如何导入依赖于其他库的JS库

Qlik如何导入依赖于其他库的JS库
EN

Stack Overflow用户
提问于 2020-04-01 21:55:26
回答 1查看 164关注 0票数 1

我正在构建一个自定义扩展,并要求Chartjs这样做。

我有以下导入

代码语言:javascript
运行
复制
define( [
        'jquery',
        './PropertiesPannel',
        '//cdnjs.cloudflare.com/ajax/libs/Chart.js/2.9.3/Chart.bundle.js',
        '//cdnjs.cloudflare.com/ajax/libs/hammer.js/2.0.8/hammer.min.js',
        '//cdn.jsdelivr.net/npm/chartjs-plugin-zoom@0.7.5/dist/chartjs-plugin-zoom.min.js'
    ],
    function ( $, ProperitesPannel, Chart) {
        'use strict';
....

我收到以下控制台错误。

代码语言:javascript
运行
复制
hammerjs.js:1 Uncaught SyntaxError: Unexpected token '<'
3setup-view.d91ae8b7669a979d2ec1.js:8 TypeError: Cannot read property 'helpers' of undefined
    at chartjs-plugin-zoom.min.js:11
    at Object.execCb (setup-view.d91ae8b7669a979d2ec1.js:8)
    at n.check (setup-view.d91ae8b7669a979d2ec1.js:8)
    at n.<anonymous> (setup-view.d91ae8b7669a979d2ec1.js:8)
    at setup-view.d91ae8b7669a979d2ec1.js:8
    at setup-view.d91ae8b7669a979d2ec1.js:8
    at each (setup-view.d91ae8b7669a979d2ec1.js:8)
    at n.emit (setup-view.d91ae8b7669a979d2ec1.js:8)
    at n.check (setup-view.d91ae8b7669a979d2ec1.js:8)
    at n.enable (setup-view.d91ae8b7669a979d2ec1.js:8)

我知道chartjs插件文件需要图表文件和锤子。我怎样才能把这些连接起来呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-04-03 18:50:49

这个很有问题。chartjs插件试图加载chart.js,它不是一个有效的模块id,而是一个文件名。因此,即使我在require.config.paths中设置它,RequireJS也会尝试将其作为文件加载。所以这里有一个小的解决方法:

代码语言:javascript
运行
复制
<script src=https://cdnjs.cloudflare.com/ajax/libs/require.js/2.3.6/require.js></script>
<script>
    require.config({
        paths: {
            jquery: 'https://cdnjs.cloudflare.com/ajax/libs/jquery/3.4.1/jquery.min',
            'chart': '//cdnjs.cloudflare.com/ajax/libs/Chart.js/2.9.3/Chart.bundle',
            hammerjs: '//cdnjs.cloudflare.com/ajax/libs/hammer.js/2.0.8/hammer.min'
        }
    });

    var originalDefine = define;

    window.define = function (a, b, c) {
        // when chartjs-plugin-zoom.min.js tries to load chart.js, load the chart module from the defined paths :)
        if (a && a.length && a[0] === 'chart.js') {
            a[0] = 'chart';
        }
        originalDefine(a, b, c);
    };

    require([
        'jquery',
        'chart',
        'hammerjs',
        '//cdn.jsdelivr.net/npm/chartjs-plugin-zoom@0.7.5/dist/chartjs-plugin-zoom.min.js'
    ], function ($, chart, hammer, chartjs) {
        'use strict';
        console.log('hello world');
        console.log($, chart, hammer, chartjs);
    });
</script>

它加载得很好,所以你可以开始工作了

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60972523

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档