2012-06-15 7 views
1

J'essaie d'utiliser météore pour obtenir des mises à jour de graphique en utilisant Google Maps System. Donc ce que je fais est que je crée une collection et puis fournissons cela aux "données" de google chart (par exemple camembert). Le problème est que le code javascript pour Google Maps ne fonctionne que dans le tag et donc je ne peux pas utiliser la tentation simple de Meteor qui ne fonctionne que dans le. donc ce que je fais est que je mets le code suivant dans la section de la tête de mon html:Meteor et google charts

<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] 
     ]); 

i nourrir les addRows des données avec les données que je reçois de ma collection. Mais quand j'essaie d'ajouter des données à l'aide de mongo côté client, il ne se met pas à jour automatiquement. Il apparaît juste quand je rafraîchis la page. Avez-vous une idée de comment puis-je connaître les changements dans ma collection, puis Rerender mon graphique en temps réel en fonction des changements dans ma collection Mongo? thx.

Répondre

1

Je vous suggère de vous abonner manuellement à la collection et de transmettre les données au tableau google lorsque vous les modifiez.

Voir: Meteor.subscribe(). Je pense alors que vous pouvez détecter les changements via le troisième argument, une fonction de rappel onComplete que vous définissez vous-même. Je crois que les données transmises à cette fonction lorsque les données sont modifiées sur le serveur indiquent si les données ont été ajoutées, supprimées, déplacées ou modifiées. Dans cette fonction onComplete vous allez ensuite mettre à jour le graphique google.

Bonne chance.

+0

J'ai essayé cela avec le code suivant. – user1458025

+0

Impossible de trouver le code en suivant le lien que vous avez fourni. Mais j'ai lu que vous avez trouvé une solution (http://stackoverflow.com/a/11062767/95008). – Spiralis

0

Ok. J'ai trouvé la solution. Spilaris, ce que vous avez dit n'est appelé qu'une fois lorsque l'abonnement est terminé. J'avais besoin d'observer le db pour les changements.

+0

Ah. Je vois. Peut-être que vous pouvez fournir le code que vous avez obtenu comme un échantillon pour les autres qui luttent avec le même? – Spiralis