首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用C3创建

如何使用C3创建
EN

Stack Overflow用户
提问于 2015-06-05 10:17:24
回答 2查看 196关注 0票数 0

我找不到任何例子来描述使用C3库创建Dojo的过程。

在尝试创建一个小部件之前,我尝试创建一个模块,它成功了。

我是新来的Dojo ..。下面是我尝试用c3创建一个Widget的内容:

代码语言:javascript
复制
require([
        "dojo/_base/declare", "dojo/parser", "dojo/dom-construct", "dojo/ready", "dojo/_base/window",
        "dijit/_WidgetBase", "d3/d3", "c3/c3"
    ],function(declare, parser, domConstruct, ready, win, _WidgetBase, d3, c3){

        declare("LineChart", [_WidgetBase], {

            _options: {
                bindTo : '#kpi1_chart',
                data : {
                    columns : [
                        ['data', 23, 50, 22, 41, 10]
                    ]
                },
                zoom :{
                    enabled : true
                }
            },

            _chart: undefined,

            constructor: function(params, srcNodeRef){
                if(params.hasOwnProperty('id'))
                    this._options.bindTo = "#"+params.id;
                else
                    console.log("widget LineChart : id couldn't be found");

            },
            buildRendering: function(){
                this._chart = c3.generate(this._options);
            }
        });

        ready(function(){
            parser.parse();
        });
});

下面是我如何在HTML中初始化这个小部件

代码语言:javascript
复制
<div id="kpi1_chart" data-dojo-type="LineChart"></div>

当我启动页面时,div标签只是空的,我没有发现任何错误,您能帮忙吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-06-16 10:03:50

我会回答我的问题:

为了能够在dojo中显示C3图表,您必须在启动()函数中生成图表。

例如,如果您试图在小部件生命周期中的C3启动()之前的另一个函数(如postCreate() )中生成图表,则无法将c3绑定到DOM元素(相同小部件),因为这个元素还不存在。

票数 1
EN

Stack Overflow用户

发布于 2015-06-05 15:03:50

我把申报部分做好了。

问题是,在内部,c3.js只使用"d3“和"c3”作为模块名,因此如果模块名不先于"d3/d3“,则dojo解析器将在路径中查找'main.js‘文件。

因此,为了使用独立模块名,您需要在dojoConfig变量中配置包,如下所示。

代码语言:javascript
复制
packages:[
        {
            name: "d3",
            location: '//cdnjs.cloudflare.com/ajax/libs/d3/3.4.6',
            main:"d3"
        },
        {
            name: "c3",
            location: '//cdnjs.cloudflare.com/ajax/libs/c3/0.4.10',
            main:"c3"

        }

这里的诀窍是指定属性。当您指定主属性时,如果模块名中只指定了d3.js,则dojo加载程序将查找"d3"而不是main.js

我可以让它与declare一起工作,并且调用了c3.generate(),但是无法获得任何图表。我想我错过了一些css文件。我对c3.js知之甚少。

下面是文档的链接,介绍dojo加载器的工作方式。

希望你能从这里走得更远。

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

https://stackoverflow.com/questions/30664043

复制
相关文章

相似问题

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