2012-03-10 64 views
0

我问很多的问题,但任何人都没有回答我...如何再次使用ExtJs4组件?

请回答这个问题..

嗨,我是新手,在Extjs4

我用extjs4,

我使一个组件,这样

var child1 = Ext.create('Ext.form.Panel', { 
        xtype : 'panel', 
        title : 'child1', 
        html : 'child1' 
       }); 

而且,我用这个窗口1,这样

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

,我想用 'child1',另一个窗口,这样

var win2 = Ext.create('Ext.window.Window', { // setting 
      height : 200, 
      width : 200, 
      layout : 'fit', 
      title : 'window2', 
      items : child1 
     }).show(); 

但这是错误的代码。

它只是在Window2中看到。

,但我想用“child1”既WIN1 WIN2和...

我怎样才能做到这一点?谢谢!

+0

请从您的问题标题(来自所有人)中删除etxjs/extj4 //。你不需要在标题中重复标签 – sha 2012-03-10 13:38:11

+0

贾斯汀在下面有正确的答案,这里是例子:http://jsfiddle.net/dbrin/N7Lkg/你的例子没有工作的原因是因为面板的DOM实际上移动到了window1 DOM中,然后同一个面板DOM再次移动到了窗口2的内部......相反,您必须创建两个相同DOM的实例以显示在两个单独的浮动窗口中。 – dbrin 2012-03-11 07:17:44

回答

1

*

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(); 
+0

谢谢!我解决了这个问题! – 2012-03-12 08:00:27

0

你可以使用它们就好了。但项目是数组 - 所以你需要的,如果你要使用重复使用的组件,创建一个视图,并使用小部件分配一个别名将其更改为items: [ child1 ]