1

Googleチャートシステムを使用してチャートの更新を取得するために流星を使用しようとしています。だから私はコレクションを作成し、それをGoogleチャートの「データ」(円グラフなど)に提供します。問題は、Google チャートの JavaScript コードがタグでのみ機能するため、. だから私がしていることは、次のコードを私のhtmlのヘッドセクションに入れることです:

<script type="text/javascript" src="https://www.google.com/jsapi"></script>
    <script type="text/javascript">

      // Load the Visualization API and the piechart package.
      google.load('visualization', '1.0', {'packages':['corechart']});
    </script>
and then in Meteor.startup in Meteor.is_client i call :
google.setOnLoadCallback(drawChart);
 in drawChart the data is defined as follow:

var data = new google.visualization.DataTable();
        data.addColumn('string', 'Topping');
        data.addColumn('number', 'Slices');
        data.addRows([
          ['Mushrooms', 3],
          ['Onions', 1],
          ['Olives', 1],
          ['Zucchini', 1],
          ['Pepperoni', 2]
        ]);

コレクションから取得したデータをデータの addRows にフィードします。しかし、クライアント側の mongo を使用してデータを追加しようとすると、自動的に更新されません。ページを更新すると表示されるだけです。コレクションの変更を知り、Mongo コレクションの変更に基づいてリアルタイムでチャートを再レンダリングする方法を知っていますか? どうも。

4

2 に答える 2

1

コレクションを手動でサブスクライブし、変更時にデータを Google チャートにフィードすることをお勧めします。

参照: Meteor.subscribe()。次に、自分で定義した onComplete コールバック関数である 3 番目の引数を介して変更を検出できると思います。サーバー上でデータが変更されたときにこの関数に渡されるデータは、データが追加、削除、移動、または変更されたかどうかを示していると思います。この onComplete 関数では、Google チャートを更新します。

幸運を。

于 2012-06-15T15:16:37.523 に答える
0

Ok。解決策を見つけました。Spilaris、あなたが言ったことは、サブスクリプションが完了するときに一度だけ呼び出されます. db の変更を監視する必要がありました。

于 2012-06-16T10:52:00.523 に答える