【问题标题】:how to use external js library with Aura?如何在 Aura 中使用外部 js 库?
【发布时间】:2016-11-14 14:55:36
【问题描述】:

我添加了

<script language="javascript" type="text/javascript" src="../js/Chart.bundle.js"></script>  

在 aura:application 文件中,文件由浏览器下载(可以通过控制台看到) 但是当我尝试在渲染器的 afterRender 函数中创建图表对象时

var myChart = new Chart(ctx, { .....

我有一个错误:

出了点问题。 afterRender 抛出错误 'markup://helloWorld:helloWorld' [afterRender 在 'markup://c:ltGraph' [ReferenceError: Chart is not defined]] 失败 描述符:{markup://helloWorld:helloWorld} 错误 在新 (http://localhost:8080/auraFW/javascript/lG7eYFZ_MXfCccXumk95LQ/aura_dev.js:3152:23) 在http://localhost:8080/auraFW/javascript/lG7eYFZ_MXfCccXumk95LQ/aura_dev.js:1:1。 请再试一次。

如何在 Aura 中使用外部库?

【问题讨论】:

    标签: javascript aura.js aura-framework


    【解决方案1】:

    我发现了问题。我的代码想在加载之前使用库。 我必须在我的 js 代码(渲染器)中进行一些检查

    var timesToCheck = 10;
    var poll = function () {
        setTimeout(function () {
            timesToCheck--;
            if (typeof Chart !== 'undefined') {
    
                // now you can use Chart (or other) library.....
    
            } else if (timesToCheck > 0) {
                poll();
            } else {
                console.log('giving up')
            }
        }, 100);
    };
    poll();
    

    (代码取自https://developer.salesforce.com/forums/?id=906F0000000Amaz

    但是,我仍然在加载 2 个依赖库(如 jQuery 和 Flot)时遇到问题。在 Flot 初始化期间经常会出现 jQuery 未定义的错误.....

    【讨论】:

    • 你的 aura 应用使用的是什么版本的 Jquery。如果它是 3.x,那么我建议使用 2.2.4 的 Jquery,因为 3.x 似乎与夏季 16 版本的 Locker Service Critical 更新存在问题。
    • 问题在于在实际加载库之前尝试使用 jQuery/Flot
    • 你能告诉我你在尝试加载 Jquery 时收到的错误消息是什么..
    猜你喜欢
    • 2017-09-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-14
    • 1970-01-01
    • 2020-02-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多