2016-04-03 53 views
0

Meine Anwendung erstellt dynamische Diagramme basierend auf Benutzereingaben. Jedes Diagramm wird in einer Art Zeitleiste über dem anderen angezeigt. Ich möchte dem Benutzer auch die Möglichkeit geben, einige Optionen auf der individuellen Chart-Ebene zu ändern.Dygraphs: updateOptions für dynamisch erstellte Diagramme

Aber, wie ich zur Zeit die Charts zu schaffen bin dynamisch mit:

g = new Dygraph(document.getElementById("trend_" + json.id), data, 
      { 
      ... some options specified here 
      }); 

Jedes Mal, wenn ich versuche, einige Optionen auf einem der Pläne zu aktualisieren, so etwas wie dies mit:

g.updateOptions({ ... some option }); 

es ist nur kann das zuletzt erstellte Diagramm aktualisieren.

Ich dachte zuerst über die Verwendung eines Arrays, aber ich denke nicht, dass es funktionieren wird, da die Diagramme nicht zur gleichen Zeit erstellt werden. (Diese jsfiddle ich erstellt ermöglicht es, aber nur wenn sie zur gleichen Zeit erstellt werden)

Was wäre meine Optionen? Wenn ich nur könnte document.getElementById() in meiner g.updateOptions() Funktion übergeben ...

Antwort

1

Wenn würden Sie Ihre IDs zuordnen Objekte Dygraph, dann speichern Sie die dygraphs in einem Objekt-Mapping:

var gs = {}; 
for (...) { 
    gs[json.id] = new Dygraph("trend_" + json.id, data, 
      { 
       ... some options specified here 
      }); 
} 

// .... 
gs[json.id].updateOptions({...}); 
+0

Danke, arbeitete dies wie ein Charme! Ich musste nur daran denken, gs weltweit verfügbar zu machen. – koend

Verwandte Themen