将ExtJS4组件添加到ExtJS3组件中?

3
我有一个使用ExtJS3的应用程序,可以受益于ExtJS4 SVG stuffs。在线上有一个示例,展示了如何使用沙盒模式在ExtJS3应用程序中包含ExtJS4组件...但是在该示例中,ExtJS4组件位于其自己的浮动窗口中,因此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个回答

2

看起来,一些Ext4组件可以将renderTo到Ext3组件中的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图表时,这似乎是最有用的。

引用:


使用ExtJS 4图表在ExtJS 3应用程序中遇到了一些问题,欢迎提供意见 - http://stackoverflow.com/questions/6455873/using-extjs-4-charts-in-extjs-3-application - OrangeDog

0

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

从ExtJS 3迁移到4将更好地解决问题。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接