Qlik - Требовать JS зависимости модуля с ChartJS - PullRequest
2 голосов
/ 17 июня 2020

Я хочу загрузить Javascript плагины для диаграммы JS в QLIK Sense Developer.

Я настроил определение, как показано ниже.

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',
   //'./chartjs-plugin-zoom',
   './chartjs-plugin-annontation',
   //'./chartjs-plugin-datalabels',
   'qlik'
],
function ( $, ProperitesPannel, Chart,Hammer,ChartAnnotation,qlik) { foo,baa}
  • Проблема 1 : ON Qlik App run time, 'Chart' is undefined Ошибка для подключаемого модуля меток данных.
  • Проблема 2: во время выполнения приложения Qlik, иногда ошибка масштабирования и добавления аннотаций отображается как Проблема 1

Я считаю, что проблема заключается в том, что пакеты загружаются не по порядку, поэтому плагины загружаются до основной диаграммы JS, что делает Chart не готовым к использованию глобально.

Как я могу загрузить их таким образом, чтобы во время выполнения все загружалось правильно?

1 Ответ

1 голос
/ 22 июня 2020

Как я могу загрузить их таким образом, чтобы во время выполнения все было загружено правильно?

Эта опция называется shim. Вот быстрый пример:

requirejs.config({
  shim: {
    '//cdnjs.cloudflare.com/ajax/libs/Chart.js/2.9.3/Chart.bundle.js': ['jquery'],
  }
});

В этом примере я говорю Require загрузить jQuery перед загрузкой Chart.bundle.js, потому что он ему нужен. Для всех файлов, которые не поддерживаются AMD, вы должны установить это.

Вы можете узнать больше на официальной странице: https://requirejs.org/docs/api.html#config -shim

...