Sencha touch 2,Uncaught TypeError:undefined不是函数

时间:2014-11-24 19:38:38

标签: codeigniter extjs sencha-touch-2.1 codeigniter-restserver

我对Sencha touch很新,我想知道如何发送帖子数据。我现在面临两个问题。 1)我一直得到Uncaught TypeError:当我尝试获取表单数据时,undefined不是函数,2)如何将数据发布到codeigniter中的远程restful api。

我的控制器现在给了我错误

    Ext.define('tileconmob.controller.Main',{
    extend:'Ext.app.Controller',
    views:['Home','Address','Workers','Firstpage'],
    models:['People','Worker'],
    config:{
        refs:{
             loginForm:'#loginform'
        },
        control:{
            'button[action=loginUser]':{
            tap:'LoginUser'
        } 
        }
    },
            LoginUser:function(button,event){
                console.log("event in controller was fired");
                //console.log(this.referenceList);
                var values=this.getloginForm().getValues();
                console.log(values);}
});

视图

    Ext.define('tileconmob.view.Home', {
    extend: 'Ext.Panel',
    xtype: 'profilepanel',
    config: {
        title: 'About us',
        iconCls: 'home',
        styleHtmlContent: true,
        scrollable: true,
        items: [{docked: 'top',
                xtype: 'titlebar',
                title: 'Login'},

            {
                xtype: 'fieldset',
                title: 'About You',
                id:'loginform',
                items: [{
                        xtype: 'textfield',
                        name: 'name',
                        label: 'Full Name'
                    }, 
                    {
                        xtype: 'textfield',
                        name: 'password',
                        label: 'Password'
                    },
                    {
                        xtype:'button',
                        ui:'submit',
                        text:'Login',
                        action:'loginUser'
                    }
                ]
            }]
    }

});

进一步研究这段代码,假设将数据发布到使用codeigniter rest api运行的远程服务器上。希望某种善良的灵魂可以从这里向我展示道路。

1 个答案:

答案 0 :(得分:0)

没有动摇解决这个问题。发现了这个问题。我正在使用Ext.panel,我已在字段集中设置了id。经过一些在线研究后,fieldset没有附带.getValues();它来自Ext.form.Panel。

所以最终的代码应该是视图

Ext.define('tileconmob.view.Home', {
    extend: 'Ext.form.Panel',
    xtype: 'profilepanel',
id:'loginform',
    config: {
        title: 'About us',
        iconCls: 'home',
        styleHtmlContent: true,
        scrollable: true,
        items: [{docked: 'top',
                xtype: 'titlebar',
                title: 'Login'},

            {
                xtype: 'fieldset',
                title: 'About You',
                items: [{
                        xtype: 'textfield',
                        name: 'name',
                        label: 'Full Name'
                    }, 
                    {
                        xtype: 'textfield',
                        name: 'password',
                        label: 'Password'
                    },
                    {
                        xtype:'button',
                        ui:'submit',
                        text:'Login',
                        action:'loginUser'
                    }
                ]
            }]
    }

});