首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >直到运行时才知道要生成多少个图。(无法对解决方案进行硬编码)

直到运行时才知道要生成多少个图。(无法对解决方案进行硬编码)
EN

Stack Overflow用户
提问于 2012-10-28 15:40:40
回答 1查看 83关注 0票数 0

我正在为我所在的大学创建一个能源使用/分析/管理应用程序。已经有一个在线数据库,该数据库不断更新每个建筑的最新电表额定值。

我的应用程序将有一个页面,其中列出了所有建筑物,可以点击。当用户选择一座建筑物时,应用程序将获取该建筑物的电表读数,并使用“Highcharts”图表库为每个电表生成图形。

应用程序的后端是用Ruby (使用Rails)编写的。在显示由特定构建的图形组成的页面的HTML视图中,我将

代码语言:javascript
复制
 <div id="graphContainer">

 </div>

以便生成图形。

目前,我只需在视图中硬编码上述代码的一个实例,就可以为每个构建页面生成一个图形。

但是,每栋建筑可以有多个电表。由于在HTML方面没有太多经验,当我在运行时才知道需要多少图形时,我不知道如何生成图形。

有谁能给我指个方向吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-10-28 19:50:31

给定一个

代码语言:javascript
复制
<div id="graphContainer"></div>

您可以使用以下命令使用highchart来确定目标

代码语言:javascript
复制
chart1 = new Highcharts.Chart({
  chart: {
    renderTo: '#graphContainer',  //  <=== this selector here  
    type: 'bar'
  },
  //... more options and graph data
});

最初也不必在视图中显示#graphContainer的超文本标记语言。你可以吃点

代码语言:javascript
复制
<div id="graphs-container"></div>

在您的视图中,然后通过Javascript (如下所示的jQuery),您可以使用一个简单的循环为运行时所需的每个图形构建容器和highchart。

代码语言:javascript
复制
$(function(){
  var highcharts = [];

  for (var i=0; i<charts.length; i++) {
    $('#graphs-container').append($('<div id="graph-container-' + (i+1) + '"/>');

    var highchart = new Highcharts.Chart({
      chart: {
        renderTo: '#graph-container' + (i+1),  //  <=== this selector here  
        type: 'bar'
      },
      //... more options and graph data for chart[i]
    });

    highcharts.push(highchart);
  });
});

您所需要做的就是修改上面的内容以满足您的需要,方法是将charts作为JSON数据发送到视图,其中包含根据Highchart选项和数据集呈现每个特定图形所需的所有内容。

Highcharts文档是一个很好的地方,但是正如你所建议的,在你熟悉所有这些东西之前,你似乎还有更多的学习要做。

  • http://www.highcharts.com/documentation/how-to-use
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13107167

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档