如何在magento 2中加载外部CDN(seats.io)?

时间:2019-04-05 14:16:25

标签: javascript requirejs magento2

我正在尝试在magento 2中实现https://docs.seats.io/docs/tutorial-show-the-floor-plan-on-your-page

我在首页中添加了此代码

<div id="chart"></div>
<script>
        require(['jquery', 'seatsio'], function($){
            $(document).ready(function(){
                new seatsio.SeatingChart({
                    divId: 'chart',
                    publicKey: 'xxxx',
                    event: 'xxxx'
                }).render();
            });
        });
</script>

在requirejs-config.js中,我将其添加到加载CDN中:

paths: {
    'seatsio': 'https://cdn.seatsio.net/chart'

还有

shim: {seatsio: ['jquery']}

在google chrome devtools中,已加载CDN,但出现此错误:

未捕获的ReferenceError:未定义seatio

你知道我做错了什么吗?

1 个答案:

答案 0 :(得分:0)

根据chart.js代码,当通过requireJS加载库并且seatsio是一个对象时,未设置全局变量require.amd

RequireJS将每个依赖项的导出值提供给模块函数。您可以接受导出的seatsio作为第二个参数,如下面的代码所示。

<div id="chart"></div>
<script>
        require(['jquery', 'seatsio'], function($, seatsio /* add this param */){
            $(document).ready(function(){
                new seatsio.SeatingChart({
                    divId: 'chart',
                    publicKey: 'xxxx',
                    event: 'xxxx'
                }).render();
            });
        });
</script>