Dygraphs:动态创建图表的 updateOptions

Dygraphs: updateOptions for dynamically created charts

我的应用程序根据用户输入动态创建 dygraphs 图表。每个图表都以某种时间线显示在另一个图表之上。我还想为用户提供在单个图表级别更改几个选项的能力。

但是,由于我目前正在使用动态创建图表:

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

每当我尝试使用如下方式更新其中一个图表上的某些选项时:

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

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

我最初考虑改用数组,但我认为它行不通,因为图表不是同时创建的。 (我创建的 jsfiddle 允许这样做,但前提是它们是同时创建的)

我的选择是什么?要是我能在我的 g.updateOptions() 函数中传递 document.getElementById() 就好了...

如果您要将 ID 映射到 Dygraph 对象,则将 dygraph 存储在对象映射中:

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

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