表格没有在sencha 2.2中显示

时间:2013-07-08 16:37:27

标签: sencha-touch-2.2

我能够在容器内显示表单。我曾经像这样添加它......

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吗?或者我应该转移到Panel?

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

提前致谢。

1 个答案:

答案 0 :(得分:0)

您的问题可能源于尝试使用Ext.define定义一个类,并与Ext.create混合来创建一个实例。为什么要尝试将表单包装在容器中?您应该只需将表单中的items移到login面板中,然后将该类扩展为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