extjs重用对象

时间:2010-06-18 04:42:57

标签: extjs

如果我有:

var x  = new Ext.form.formPanel({
});

我想在两个地方重用,例如:

var panel1 = new Ext.panel({ items:[x] });
var panel2 = new Ext.panel({ items:[x] });

尝试方法Ext.extend但它没有用。如果我这样做,它只会在页面上呈现一次。

2 个答案:

答案 0 :(得分:1)

需要创建两个Ext.form.FormPanel对象,因此您必须执行与下面所示类似的操作:

var x  = new Ext.form.FormPanel({
});

var y  = new Ext.form.FormPanel({
});

var panel1 = new Ext.Panel({ items:[x] });
var panel2 = new Ext.Panel({ items:[y] });

答案 1 :(得分:1)

您可以创建自己的formPanel类,然后在每次需要时创建

MyForm = Ext.extend(Ext.form.FormPanel, {
  title: 'My Personal Form',
  width: 400,
  height: 250,
  padding: 10,
  initComponent: function() {
    this.items = [
        {
            xtype: 'textarea',
            anchor: '100%',
            fieldLabel: 'Label'
        },
        {
            xtype: 'textfield',
            fieldLabel: 'Label',
            anchor: '100%'
        }
    ];
    MyForm.superclass.initComponent.call(this);
  }
});

var panel1 = new Ext.panel(new MyForm({id:'test1'}));
var panel2 = new Ext.panel(new MyForm());

我在第一个面板中插入了一个id属性,但你可以插入其他任何东西。 您还可以更改表单的标准配置,覆盖配置