如何获取先前创建的Google图表的实例
How to get the instance of a previously created Google Chart?
我有一个使用谷歌图表的Web应用程序。一页上有多个图表。我成功地创建并呈现了图表。
根据用户的过滤器,我通过Ajax接收新的图表数据。如果我不在代码中保留返回的对象那么远,我如何重新获取图表对象并更新它?
我不会做类似于以下的事情:
function DrawChart()
{
// Code code code ... more code
// Initialize
var chart = new google.visualization.ScatterChart(document.getElementById("my-chart-div"));
// Draw
chart.draw(data, options);
}
稍后:
function UserDidSomething()
{
var newData = MyAjaxCall(...);
var options = ...;
var chart = ...; // What goes here??
chart.draw(newData, options);
}
提前感谢,害羞的
我创建了一个动态charts
对象,用于保存创建的图表:
/// <summary>
/// This object holds created charts in order to edit them.
/// The key for the chart is the div id (e.g. charts["chart-my-chartname"]).
/// </summary>
var charts = {};
function ChartCreated(divId)
{
return charts[divId] !== undefined && charts[divId] != null;
}
function GetChart(divId)
{
return charts[divId];
}
function AddChart(divId, chart)
{
charts[divId] = chart;
}
function RemoveChart(divId)
{
charts[divId] = null;
}
function CreateOrUpdateChart(divId, chartType, data, options)
{
var chart;
// If the chart was previously created, use its object
if (ChartCreated(divId))
{
chart = GetChart(divId);
}
else // If there was no chart, create and keep it
{
chart = InitializeNewChart(chartType, divId);
AddChart(divId, chart);
}
// Create a new DataTable object using the JavaScript Literal Initializer, and the received JSON data object
data = new google.visualization.DataTable(data);
// Render chart
chart.draw(data, options);
}
function InitializeNewChart(type, divId)
{
var container = document.getElementById(divId);
switch (type)
{
case "Scatter": return new google.visualization.ScatterChart(container);
case "Column": return new google.visualization.ColumnChart(container);
case "Line": return new google.visualization.LineChart(container);
default: return null;
}
}
相关文章:
- Google 脚本:用于创建日历活动的脚本运行时不会出错,但不会执行任何操作
- 如何在Google chrome安全首选项文件中创建扩展安全哈希代码
- 创建类似于Google analytics的分析地图
- 从Google Analytics文档中重新创建滚动效果
- 在Google AdWords中创建可重用功能
- 创建包含文本内容的新 Google 云端硬盘文件 (javascript)
- 在 Google Apps 脚本中,无法以编程方式创建触发器以从 onEdit 触发器发送电子邮件
- 从 JSON 使用 Google Charts API 创建饼图
- 如何获取先前创建的Google图表的实例
- 如何通过Google Drive Javascript OAuth2 API创建Google Sheets文档
- 从chrome扩展动态创建Google工作表
- 使用 PHP、JSON 和 google.visualization.DataTable 创建 google 仪表板图表
- 创建 Google 脚本,以便在日历活动更新时对其进行修改
- 如何通过 Google API 创建 Google Doc
- 在HTML页面上创建google API的多个实例
- 是否可以仅使用HTML5和javascript创建Google Cast Sender应用程序
- 从CSV输入创建Google图表
- 如何创建Google Analytics事件跟踪来记录访问者退出网站之前最后关注的表单字段
- 从MYSQL数据创建Google折线图
- 使用Google Drive API和Node.js创建Google文档