将ExtJS4组件添加到ExtJS3组件?

时间:2011-05-20 14:17:19

标签: extjs sandbox extjs4 extjs3

我有一个可以从ExtJS4 SVG stuffs中受益的ExtJS3应用程序。在线有一个example如何使用沙箱模式在ExtJS3应用程序中包含ExtJS4组件......但在示例中,ExtJS4组件在它们自己的浮动window中,因此ExtJS4组件不是'真的添加到ExtJS3组件;他们只是相互独立共存。

有没有办法在沙盒模式下运行时将ExtJS4组件添加到ExtJS3组件?例如:

var item = Ext4.create("Ext.panel.Panel", { // ExtJS4
    /* config */
});
var parent = new Ext.Panel({ // ExtJS3
    items:[item],
    /* more config */
});

如果我尝试这样的话,我通常会收到像......这样的错误。

this.container is null (http://localhost:4000/path/ext-4.0.0/builds/ext-all-sandbox-debug.js:27723)

2 个答案:

答案 0 :(得分:2)

看起来Ext3组件中的某些Ext4组件可以renderTo DOM元素,但成效有限:

var ext3Panel = new Ext.Panel({
    title:'Ext3'
});
ext3Panel.on('afterrender', function() {
    var ext4Panel = Ext4.create('Ext.panel.Panel', {
        title:'Ext4',
        renderTo:ext3Panel.body.dom,
    });
    ext3Panel.add(ext4Panel);
});

在Ext3项目中使用Ext4图表时,这似乎最有用。

引用:

答案 1 :(得分:0)

我不认为你在做什么是可能的。 ExtJS 4有一个全新的渲染引擎,所以它正在寻找一个不存在的布局容器。

从ExtJS 3迁移你会好得多 - > 4。