Рейтинг:-1

Простая круговая диаграмма не работает в пользовательском модуле. Вы видите ошибки в моем коде?

флаг ae

Я запускаю Drupal 9 в Lando. Я включил модули Charts и Highcharts и установил JS-библиотеку Highcharts с помощью composer. Я написал простой модуль для отображения круговой диаграммы, но диаграмма не отображается. Мой код ниже. Видите ли вы какие-либо вопиющие ошибки или способы отладки этого? Я перенес это из примера, который отлично работает в D7 в DevDesktop.
Информационный yaml-файл.

название: Моя тестовая таблица
описание: Это пример использования модуля Charts.
пакет: Пользовательский
тип: модуль
core_version_requirement: ^9
зависимости:
  - диаграмма

yaml-файл роутера.

пример_диаграммы:
  путь: 'mychart-пример'
  значения по умолчанию:
    _title: 'Мой пример диаграммы'
    _controller: '\Drupal\mychart\Controller\MyChartController::example_page'
  требования:
    _permission: 'доступ к содержимому'

Ямл-файл библиотеки.

хайчарты:
  js:
    библиотеки/highcharts/highcharts.js: { }
  зависимости:
    - ядро/jquery

Контроллер.

пространство имен Drupal\mychart\Controller;

используйте Drupal\Core\Controller\ControllerBase;

класс MyChartController расширяет ControllerBase {
  /**
   * @возвратный массив
   */
  функция example_page() {
    $диаграмма = массив(
      '#attached' => массив(
        'библиотека' => массив('mychart/highcharts'),
      ),
      '#type' => 'диаграмма',
      '#chart_type' => 'круговая',
      '#chart_library' => 'высокие диаграммы',
      '#title' => t('Простая круговая диаграмма'),
    );
    $chart['pie_data'] = массив(
      '#type' => 'chart_data',
      '#title' => t('Пол'),
      '#data' => массив(массив('Мужчина', 10), массив('Женщина', 20)),
    );
    вернуть $диаграмму;
  }
}
sonfd avatar
флаг in
Какую документацию вы используете для создания массива рендеринга? Есть ли ошибки js в консоли? Что вы видите для разметки в отображаемом HTML-коде страницы?
Kevin avatar
флаг in
Является ли процесс рендеринга highcharts в Drupal 9 таким же, как в Drupal 7?
Dorian Winterfeld avatar
флаг ae
Ошибок JS в консоли нет. В логах ничего. Ничего, когда я просматриваю источник. Но заголовок «Простая круговая диаграмма» печатается как H1, поэтому он что-то отображает. Только без графика. Документы, которым я следую, относятся к D7, но я не вижу ничего другого для D9. Одна подсказка: когда я просматриваю исходный код, я не вижу кода JS для Highcharts. Файл моей библиотеки выглядит нормально? Я вижу highcharts.js в библиотеках/highcharts, но думаю, что он не найден и не используется. Не уверен, как это отладить.
Dorian Winterfeld avatar
флаг ae
Я попытался установить google_charts и получил такое же поведение. Кто-нибудь знает, есть ли обновление Charts API для Drupal 9? Я следую этим примерам для D7; https://www.drupal.org/node/2434061.
leymannx avatar
флаг ne
Я думаю, что `путь:` всегда должен начинаться с косой черты: `путь: '/mychart-example'`.
Рейтинг:0
флаг ae

Решением стало обновление модуля Charts до версии 5.0.x. Теперь моя простая круговая диаграмма работает!

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.