在同一页面上结合使用Enyo 2.4和D3 JS

时间:2014-05-10 17:22:17

标签: d3.js enyo

我可以正常渲染我的D3 SVG。它会在我的页面上呈现为自己的div。我需要结合Enyo 2.4的一些功能,我也可以渲染它,但它会覆盖我的D3图形。我正在将Enyo代码渲染到它自己的div中。 2可以存在于同一页面上吗?我知道这是一个复杂的问题,有很多变量,但我基本上知道有没有人成功地将两个框架组合在同一个页面上,如果是这样的话怎么样?

1 个答案:

答案 0 :(得分:3)

我没有和d3一起工作,但能够把两者都放在一起。对于像这样的其他库,我通常选择让Enyo进行主要布局,然后将另一个渲染成Enyo控件。我不知道这是否适合你,但这是我使用的代码。

http://jsfiddle.net/ryanjduffy/PfwNL/1/

function buildGears(node) {
    // code taken from http://bl.ocks.org/mbostock/1353700
}

enyo.kind({
    name: "ex.App",
    kind: "FittableRows",
    components: [
        {kind:"onyx.Toolbar", components: [
            {content: "d3 + EnyoJS"}
        ]},
        {name: "d3", kind:"Scroller", fit:true}
    ],
    rendered: enyo.inherit(function(sup) {
        return function() {
            sup.apply(this, arguments);
            if(this.hasNode()) {
                buildGears(this.$.d3.node);
            }
        };
    })
});

new ex.App().renderInto(document.body);