0

Jquery (Ajax) を使用してサーバーに投稿し、HTML データを受信して​​ページに表示するアプリがあります。それ自体は非常に単純な JQuery 呼び出しです。

function LoadStats(isUpdate) {
    $.ajax({
        cache: false,
        url: url,
        data: {
            {someData, removed for SF}
        },
        success: function (data) {
            $("#statsBox").html(data);
        }
    });
}

私がやろうとしているのは、このボックスに表示する簡単な Google チャートを取得することです。これを行うと、javascriptが正しく表示されないようです。MVC ビューで次のような Google チャートの基本的な例を使用しています。

<div>HTML Here. Hello</div>
<script type="text/javascript">

        google.load("visualization", "1", {packages:["corechart"]});
        google.setOnLoadCallback(drawChart);
        function drawChart() {
            var data = google.visualization.arrayToDataTable([
              ['Year', 'Sales'],
              ['2004',  1000     ],
              ['2005',  1170     ],
              ['2006',  660       ],
              ['2007',  1030      ]
            ]);

            var options = {
                title: 'Company Performance',
                vAxis: {title: 'Year',  titleTextStyle: {color: 'red'}}
            };

            var chart = new google.visualization.BarChart(document.getElementById('statsBox'));
            chart.draw(data, options);
        }

</script>

私の最初の試みには、ビュー自体に google.com/jsapi スクリプトへの参照を配置することが含まれていたため、Google が定義されていないというエラーが発生しました。そのため、ページのヘッダーに API への参照を配置しました。これにより、エラーは解消されましたが、読み込まれると画面が空白になります。エラーはなく、白い空白のページです。

グラフを実際に機能させたら、サーバーからのデータを入力することに注意してください。そのため、ページ自体には入れません。ここで何が欠けていますか?jqueryポストを使用してデータをロードしているので、これを表示するために設定する必要がある他の設定が必要です。

4

1 に答える 1

0

それは間違いなく setOnLoadCallBack 関数の問題であることがわかりました。私は単にそれを削除し、単純なものに置き換えました

        $(function () {
            drawChart();
        });

また、サーバーではなくページにチャートをロードする必要がありました。私はちょうどこれを置く:

google.load("visualization", "1", {packages:["corechart"]});

サーバー上。この StackOverflow Postに感謝します。

于 2013-10-16T23:35:32.763 に答える