Как использовать внешнюю библиотеку JS с Аурой?

Я добавил

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

в ауре: файл приложения, файл загружается браузером (можно видеть через консоль), но когда я пытаюсь создать объект Chart в функции afterRender в Renderer

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

У меня есть ошибка:

Что-то пошло не так afterRender выдал ошибку в 'markup://helloWorld:helloWorld' [afterRender выдал ошибку в 'markup: // c: ltGraph' [ReferenceError: Диаграмма не определена]] Сбойный дескриптор: {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. Пожалуйста, попробуйте еще раз.

Как использовать внешние библиотеки в Ауре?

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). Довольно часто возникает ошибка, что jQuery не определен во время инициализации Flot.....

Другие вопросы по тегам