2016-04-03 79 views
0

我的应用程序根据用户输入动态创建dygraphs图表。每个图表在某种时间轴上显示在另一个图表的上方。我还希望为用户提供在单个图表级别更改几个选项的功能。Dygraphs:updateOptions动态创建图表

然而,正如我目前正在创建的图表使用动态:

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

每当我尝试使用这样的事情来更新其中一个图表中一些选项:

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

它只能够更新最后创建的图表。

我最初想用数组来代替,但我不认为它会起作用,因为图表不是同时创建的。 (这是我创建的jsfiddle允许它,但仅限于它们在同一时间创建)

我的选择是什么?如果我能传递我g.updateOptions()功能document.getElementById() ...

回答

1

如果你映射你的ID,以Dygraph对象,然后存储dygraphs中的对象映射:

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

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

谢谢,这个工作就像一个魅力!我只需要记住在全球范围内提供gs。 – koend