Sencha Touch MVC :: 试图到达 Ext.extend(Ext.form.FormPanel,...) 的 getValues()

Posted

技术标签:

【中文标题】Sencha Touch MVC :: 试图到达 Ext.extend(Ext.form.FormPanel,...) 的 getValues()【英文标题】:Sencha Touch MVC :: Trying to reach getValues() of Ext.extend(Ext.form.FormPanel,...) 【发布时间】:2011-04-14 15:52:05 【问题描述】:

我正在尝试在我的 sencha touch 应用程序中达到我的表单值,该应用程序是由拼凑而成的教程构建的。我希望它是一个 MVC 模式应用程序,所以我使用

app.views.Login = Ext.extend(Ext.form.FormPanel, formBase = ...)

在里面初始化它

 app.views.Login.superclass.initComponent.apply(this, arguments);

还有一个类似于 sencha touch phonegap MVC 教程 (link) 中的视口,我在其中应用了登录页面,例如

Ext.apply(app.views, loginPage: new app.views.Login());

在我的应用程序中,当我点击表单的发送按钮时,我尝试捕捉表单的字段

handler: function() 
    console.log('username ', app.views.Login.getValues().username);
    Ext.Ajax.request(
        url: app.views.Login.url,
        method: 'POST',
        params: username: form.getValues().username, password : form.getValues().password,
        failure : function(response)
                    console.log('Login Error! ' + response.responseText);
                ,
        success: function(response, opts) 
                    console.log('Login success! response: ' + response.responseText);
                  
    );

但我总是收到一个错误提示

未捕获的类型错误:无法调用方法 'getValues' of undefined"

当我使用时

console.log('username ', this.getValues().username);

那么我怎样才能达到表单值?

谢谢!!!

【问题讨论】:

我认为您还应该在问题中包含发送按钮的代码(尤其是其handler)。 已编辑:将 'this.getValues().username' 更改为 'app.views.Login.getValues().username' - 但仍然无法正常工作。错误:“Uncaught TypeError: Object function () superclass.apply(this, arguments); has no method 'getValues'” hm,所以如果没有解决方案我想我必须将登录页面移出视口...... 【参考方案1】:

查看Sencha Touch API Documentation,我没有看到getForm() 的方法,但getValues() 应该可以通过您的按钮handler 函数访问:

app.views.loginPage.getValues();

【讨论】:

@Tommi 嘿,谢谢您对此的看法。我必须为我的错误描述道歉。我编辑了我的问题,希望能更好地描述我的问题... 查看我上面的评论 - handler 是什么样的? 但我在视口中使用“Ext.apply(app.views, loginPage: new app.views.Login());”定义的表单那么我应该在哪里声明一个额外的“var login = new app.views.Login(...);”? 好的。再试一次。再次更新了我的答案。 samesame -> Uncaught TypeError: Object [object Object] has no method 'getValues'

以上是关于Sencha Touch MVC :: 试图到达 Ext.extend(Ext.form.FormPanel,...) 的 getValues()的主要内容,如果未能解决你的问题,请参考以下文章

Sencha Touch AJAX 调用 MVC

在 EXTJS 和 Touch Apps 之间共享遵循 MVC 模式的功能 - Sencha Workspace

Sencha Touch MVC 最佳实践

Sencha Touch 2 MVC - 如何使用按钮切换视图

MVC Sencha Touch 无法正确显示选项卡面板

Sencha Touch 使用 mvc 动态使用商店?