如何再次使用ExtJs4组件?

如何再次使用ExtJs4组件?,extjs,extjs4,Extjs,Extjs4,我问了很多问题,但没有人回答我 请回答这个问题 嗨,我是Extjs4的新手 我使用extjs4 我做了一个组件,像这样 var child1 = Ext.create('Ext.form.Panel', { xtype : 'panel', title : 'child1', html : 'child1' }); var win1 = Ext

我问了很多问题,但没有人回答我

请回答这个问题

嗨,我是Extjs4的新手

我使用extjs4

我做了一个组件,像这样

var child1 = Ext.create('Ext.form.Panel', {
                    xtype : 'panel',
                    title : 'child1',
                    html : 'child1'
                });
var win1 = Ext.create('Ext.window.Window', {
                    title : 'window1',
                    height : 200,
                    width : 400,
                    layout : 'fit',
                    items : child1
                }).show();
var win2 = Ext.create('Ext.window.Window', { // setting
            height : 200,
            width : 200,
            layout : 'fit',
            title : 'window2',
            items : child1
        }).show();
我用这个来表示窗口1,就像这样

var child1 = Ext.create('Ext.form.Panel', {
                    xtype : 'panel',
                    title : 'child1',
                    html : 'child1'
                });
var win1 = Ext.create('Ext.window.Window', {
                    title : 'window1',
                    height : 200,
                    width : 400,
                    layout : 'fit',
                    items : child1
                }).show();
var win2 = Ext.create('Ext.window.Window', { // setting
            height : 200,
            width : 200,
            layout : 'fit',
            title : 'window2',
            items : child1
        }).show();
我想用“child1”,另一个窗口,像这样

var child1 = Ext.create('Ext.form.Panel', {
                    xtype : 'panel',
                    title : 'child1',
                    html : 'child1'
                });
var win1 = Ext.create('Ext.window.Window', {
                    title : 'window1',
                    height : 200,
                    width : 400,
                    layout : 'fit',
                    items : child1
                }).show();
var win2 = Ext.create('Ext.window.Window', { // setting
            height : 200,
            width : 200,
            layout : 'fit',
            title : 'window2',
            items : child1
        }).show();
但这是错误的代码

只需在Window2中查看即可

但我想同时使用“child1”win1和win2


我该怎么做?谢谢

两者都可以很好地使用。但是items是数组-因此您需要将其更改为
items:[child1]

如果要使用重用组件,请使用小部件创建视图并分配别名*

Ext.define('MyApp.view.Child1', {
    extend: 'Ext.panel.Panel',
    alias: 'widget.child1',
    html: 'child1'
});
然后,在创建窗口时,可以通过xtype引用

var win1 = Ext.create('Ext.window.Window', {
    title : 'window1',
    height : 200,
    width : 400,
    layout : 'fit',
    items : [{ xtype: 'child1'}]
}).show();

请将etxjs/extj4//从问题标题中删除(从所有标题中删除)。你不需要重复标题中的标记Justin有下面的正确答案,下面是一个例子:你的例子不起作用的原因是因为面板的DOM实际上被移动到了window1 DOM中,然后同一个面板DOM又被移动到了Window2的内部。。。相反,您必须创建同一DOM的两个实例,以便在两个单独的浮动窗口中显示。