3

ExtJS4 SVG スタッフの恩恵を受けることができる ExtJS3 アプリケーションを持っています。サンドボックス モードを使用して ExtJS3 アプリケーションに ExtJS4 コンポーネントを含める方法の例がオンラインにありますが、この例では、ExtJS4 コンポーネントは独自のフローティングウィンドウにあるため、ExtJS4 コンポーネントは実際には ExtJS3 コンポーネントに追加されません。それらはむしろ独立して共存しています。

サンドボックス モードで実行中に ExtJS3 コンポーネントに ExtJS4 コンポーネントを追加する方法はありますか? 例えば:

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)
4

2 に答える 2

2

一部のExt4コンポーネントはrenderToExt3コンポーネントの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チャートを使用する場合に最も役立つようです。

引用:

于 2011-05-25T14:19:33.117 に答える
0

あなたがしていることは不可能だと思います。ExtJS 4 にはまったく新しいレンダリング エンジンが搭載されているため、存在しないレイアウト コンテナーを探しています。

ExtJS 3 -> 4 から移行する方がはるかに良いでしょう。

于 2011-05-20T15:45:36.127 に答える