1

Dojo 1.8 のチュートリアルをいくつか試してみましたが、これは素晴らしいものでしたが、チャート作成の基本的なチュートリアルでバグに遭遇しました。宣言的な例は問題なく動作しますが、プログラムの例ではグラフをレンダリングしようとするとエラーが発生します。

チャートのチュートリアル: http://dojotoolkit.org/documentation/tutorials/1.8/charting/

宣言的な作業の例: http://dojotoolkit.org/documentation/tutorials/1.8/charting/demo/basic-declarative.php

エラーのあるプログラム例: http://dojotoolkit.org/documentation/tutorials/1.8/charting/demo/basic-programmatic.php

私の調査によると、コードが文字列で「IN」オペランドを使用しようとしているときに問題が発生しているように見えます。

firebug のエラーは次のようになります:「TypeError: 無効な 'in' オペランド t」

dojox/gfx/path.js の縮小されていないバージョンをダウンロードし、次のコード スニペットがある 191 行目を確認する必要があります。

if(t instanceof Array){
    this._collectArgs(_12,t);
  }else{
    if("x" in t&&"y" in t){
      _12.push(t.x,t.y);
    }
  }

エラーは、ロジックが "if("x" in t&&"y" in t)" 行に落ちるところにあると思います。

何か案は?

4

2 に答える 2

1

バグの理由はわかりましたが、解決策は見つかりませんでした。

その labelOffset 値はマイナスの数値です。

したがって、「-20」を「20」に変更すると、エラーなしで実行されます。

バグの原因となるマイナス値を含む完全な例...

<!DOCTYPE HTML>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <title>Demo: Basic Programmatic Chart</title>
    <link rel="stylesheet" href="style.css" media="screen">
    <link rel="stylesheet" href="../../../resources/style/demo.css" media="screen">
  </head>
  <body>
     <h1>Demo: Basic Programmatic Chart</h1>

     <!-- create the chart -->
     <div id="chartNode" style="width: 550px; height: 550px;"></div>

     <!-- load dojo and provide config via data attribute -->
     <!-- load dojo and provide config via data attribute -->
     <script src="//ajax.googleapis.com/ajax/libs/dojo/1.8/dojo/dojo.js"></script>
     <script>

     // x and y coordinates used for easy understanding of where they should display
     // Data represents website visits over a week period
     chartData = [
       { x: 1, y: 19021 },
       { x: 1, y: 12837 },
       { x: 1, y: 12378 },
       { x: 1, y: 21882 },
       { x: 1, y: 17654 },
       { x: 1, y: 15833 },
       { x: 1, y: 16122 }
     ];

     require([
        // Require the basic 2d chart resource
        "dojox/charting/Chart",

        // Require the theme of our choosing
        "dojox/charting/themes/Claro",

        // Charting plugins: 

        //Require the Pie type of Plot 
        "dojox/charting/plot2d/Pie",

        // Wait until the DOM is ready
        "dojo/domReady!"
      ], function(Chart, theme, PiePlot){

        // Create the chart within it's "holding" node
        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" <-- bug value here
        });

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

        // Render the chart!
        pieChart.render();

      });
    </script>
  </body>
</html>

代わりに labelOffset 値を正にすると、すべて正常に動作するはずです。

labelOffset: "20"
于 2012-10-16T09:40:05.003 に答える
1

チュートリアルのエラーのようです。「labelOffset」は数値を取るはずですが、文字列を指定しているため、失敗し、引用符を取り除いて機能します。このフォーラムの投稿を参照してください。 1.7 および 1.8 のチャート作成チュートリアル

于 2013-01-25T16:02:18.417 に答える