0

C3 ライブラリーを使用して Dojo ウィジェットを作成する例を見つけることができませんでした。

ウィジェットを作成する前に、モジュールを作成しようとしましたが、うまくいきました。

私は Dojo を初めて使用します... c3 でウィジェットを作成しようとしたのは次のとおりです。

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でウィジェットを初期化する方法は次のとおりです

<div id="kpi1_chart" data-dojo-type="LineChart"></div>

ページを開始すると、div タグが空で、エラーは発生しません。

4

2 に答える 2

1

宣言部分が機能しました。

問題は、c3.js が内部的にモジュール名として「d3」と「c3」のみを使用するため、モジュール名の前に「d3/d3」がない場合、Dojo パーサーはパスで「main.js」ファイルを検索することです。

そのため、スタンドアロンのモジュール名を使用するには、次のようにdojoConfig変数でパッケージを構成する必要があります。

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"

        }

ここでのコツは、メイン属性を指定することです。main 属性を指定すると、モジュール名でonly が指定されている場合ではd3.jsなく、dojo ローダーが検索します。main.js"d3"

宣言で動作させることができ、c3.generate()が呼び出されていましたが、チャートを取得できませんでした。いくつかの css ファイルが不足していると思います。私は c3.js についてあまり知りません。

Dojo ローダーの仕組みに関するドキュメントへのリンクは次のとおりです。

ここからさらに進んでいただければ幸いです。

于 2015-06-05T15:03:50.557 に答える