Как использовать внешнюю библиотеку 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.....