Uncaught ReferenceError: требование не определено с Dojo API

Я видел несколько воплощений этой ошибки, но не видел ответа, напрямую связанного с использованием Dojo API/CDN. Я просто прохожу краткое руководство по диаграммам в Dojo, чтобы понять, как правильно применять круговую диаграмму. Я использовал простые инструкции для настройки веб-страницы, которую я мог бы использовать для проверки на своем местном языке (см. Ниже). Каждый раз, когда я запускаю .html файл, я получаю ошибку - Uncaught ReferenceError: require is not defined, Все предыдущие ответы указывают на src быть неисправным, будь то cdn, api или путь к файлу. Я пробовал несколько CDN и конфигурации, в том числе src="//ajax.googleapis.com/ajax/libs/dojo/1.10.4/dojo/dojo.js"а также

<script data-dojo-config="async: 1"
        src="//ajax.googleapis.com/ajax/libs/dojo/1.10.4/dojo/dojo.js"></script>`, 

все же я все еще получаю ту же ошибку (это прямо из документации). Любые предложения относительно того, что вызывает эту ошибку и как решить ее, чтобы проверить мою простую круговую диаграмму?

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title>Tutorial: Pie Chart!</title>
        <script> src="//ajax.googleapis.com/ajax/libs/dojo/1.13.0/dojo/dojo.js"></script>
    </head>
    <body>
        <script>
            require([
                'dojo/dom',
                'dojo/dom-construct',
                'dojox/charting/Chart',
                'dojox/charting/themes/Claro',
                'dojox/charting/PiePlot'
            ], function (dom, domConstruct, Chart, theme, PiePlot) {
                var pieChart = new Chart("chartNode");

            // Set the theme
            pieChart.setTheme(theme);

            // Add the only/default plot
            pieChart.addPlot("default", {
                type: PiePlot, // our plot2d/Pie module reference as type value
                radius: 200,
                fontColor: "black",
                labelOffset: -20
            });

            // Add the series of data
            pieChart.addSeries("January",chartData);

            // Render the chart!
            pieChart.render();
        });
        </script>
        <div id="chartNode" style="width: 550px; height: 550px;"></div>
    </body>
</html>

1 ответ

Решение

Первое, что есть ошибка типа в строке 6 тега сценария, сценарий закрытого тега и атрибут src за пределами тега сценария, то почему у вас есть ошибка reuire, это не...

Кроме того, после исправления этих ошибок у вас все равно останутся ошибки,

так что вам нужно исправить импорт

'dojox/charting/PiePlot' должен быть заменен 'dojox/charting/plot2d/Pie'

и вам нужно объявить свой chartData Вот,

Если вам нужна версия файла, посмотрите этот GIST

В противном случае смотрите ниже рабочий фрагмент:

require([
  'dojo/dom',
  'dojo/dom-construct',
  'dojox/charting/Chart',
  'dojox/charting/themes/Claro',
  'dojox/charting/plot2d/Pie'
], function(dom, domConstruct, Chart, theme, PiePlot) {
  
  chartData = [
      { y: 389, text: "data1 " },
      { y: 125, text: "data 2" },
      { y: 285, text: "data 3" },
      { y: 193, text: "data 4" },
       { y: 21, text: "No data" }
  ];

  
  var pieChart = new Chart("chartNode");

  // Set the theme
  pieChart.setTheme(theme);

  // Add the only/default plot
  pieChart.addPlot("default", {
    type: PiePlot, // our plot2d/Pie module reference as type value
    radius: 200,
    fontColor: "black",
    labelOffset: -20
  });

  // Add the series of data
  pieChart.addSeries("January", chartData);

  // Render the chart!
  pieChart.render();
});
<script src="//ajax.googleapis.com/ajax/libs/dojo/1.10.0/dojo/dojo.js"></script>
<div id="chartNode" style="width: 550px; height: 550px;"></div>

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