0

我能够在容器内显示表单。我以前是这样添加的...

var form = Ext.create('Ext.form.Panel', {
    fullscreen: true,
    items: [
        {
            xtype: 'textfield',
            name: 'name',
            label: 'Name'
        },
        {
            xtype: 'emailfield',
            name: 'email',
            label: 'Email'
        },
        {
            xtype: 'passwordfield',
            name: 'password',
            label: 'Password'
        }
    ]
});

Ext.define('MyApp.view.Login',{
    extend: 'Ext.Container',
    alias: 'widget.login',

    config:{
        items:[
            form
        ]
    }
});

代码的第一部分取自sencha 2.2 docs,但仍然没有结果......

我也尝试使用 Ext.define 并分配一个别名来使用项目内部的 xtype,但没有任何反应。

可以用Container来包裹formpanel吗?还是我应该转到面板?

顺便说一句,我的项目配置了 Sencha Touch 2.2 和 PhoneGap 2.9,当我在 xcode 上测试时出现问题

提前致谢。

4

1 回答 1

0

您的问题可能源于试图使用Ext.define定义一个类,混合Ext.create创建一个实例。您为什么要尝试将表单包装在容器中?您应该能够将您items的表单从表单移动到login面板中,并让该类 extend Ext.form.Panel,如下所示:

Ext.define('MyApp.view.Login', {
    extend: 'Ext.form.Panel',
    xtype: 'widget.login',
    config: {    
        items: [
            {
                xtype: 'textfield',
                name: 'name',
                label: 'Name'
            },
            {
                xtype: 'emailfield',
                name: 'email',
                label: 'Email'
            },
            {
                xtype: 'passwordfield',
                name: 'password',
                label: 'Password'
            }
        ]
    }
});

如果您必须包装,则尝试为您的表单定义一个新类作为扩展Ext.form.Panel(而不是使用实例),然后{ xtype: 'loginform' }items您的MyApp.view.Login.

于 2013-07-08T20:03:15.873 回答