首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >C3 js动态绑定

C3 js动态绑定
EN

Stack Overflow用户
提问于 2017-04-11 21:55:36
回答 3查看 2.5K关注 0票数 0

我正在使用C3.js在我的angular应用程序中呈现仪表图。网页上有多个图表,它们的顺序和id是在运行时确定的。

我有一个名为WidgetService的服务,可以呈现不同类型的图表。我在divng-init上调用图形对象的setup方法。

下面是setup方法:

代码语言:javascript
复制
this.setup = function() {
  var chart = c3.generate({
    bindto: '#' + this.id,
    data: {
      columns: [
        ['data', this.data]
      ],
      type: 'gauge',
    },
    size: { height: 180 }
  });

  console.log("in setup");
};

因为bindto不能将图表绑定到id元素,所以每个图表的html在运行时都会被评估。如果我对id进行硬编码,它会工作得很好。有什么方法可以实现这种动态绑定吗?

下面是与我的应用程序结构类似的完整示例:jsFiddle

我只在小提琴(仪表)中包含了一个图表,但实际上有不同类型的图表。每个图表都有自己的指令(例如,仪表图的gauge-chart )及其在WidgetService中的实现。

EN

回答 3

Stack Overflow用户

发布于 2017-09-11 18:56:23

尝试:

代码语言:javascript
复制
bindto: document.getElementById(this.id)

对我来说很好。

票数 1
EN

Stack Overflow用户

发布于 2018-03-02 14:56:12

其中之一将会起作用:

代码语言:javascript
复制
bindto: '#myContainer'
// or element
bindto: document.getElementById('myContainer')
// or D3 selection object
bindto: d3.select('#myContainer')
票数 0
EN

Stack Overflow用户

发布于 2019-07-25 18:57:46

代码语言:javascript
复制
<div class="chart0"></div>
<div class="chart1"></div>
<div class="chart2"></div>
<div class="chart3"></div>
<div class="chart4"></div>
<div class="chart5"></div>
<div class="chart6"></div>
<div class="chart7"></div>
<div class="chart8"></div>
<div class="chart9"></div>
<div id="chart"></div>
$('#chart').attr("id", "chart" + i);
$(".chart" + i).attr("id", "chart");

如果在循环内使用。同样的方法也可以在循环之外使用,只需根据上面的要求更改I,就可以生成10个图表。它是经过测试的

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43348036

复制
相关文章

相似问题

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