【发布时间】:2013-11-18 20:30:26
【问题描述】:
我的问题是关于这篇文章中可能的答案Sencha Touch 2 - How to get form values?
我在尝试使用控制器从视图中的表单检索值时遇到同样的问题。
我当前的错误是 Uncaught TypeError: Object # has no method 'getValues'
查看:
Ext.define("App.view.Login", {
extend: 'Ext.form.Panel',
requires: [
'Ext.field.Password'
],
id: 'loginview',
config: {
items: [{
xtype: 'titlebar',
title: 'Login',
docked: 'top'
},
{
xtype: 'fieldset',
id: 'loginForm',
defaults: {
required: true
},
items: [{
items: [{
xtype: 'textfield',
name: 'username',
label: 'Username:'
},
{
xtype: 'passwordfield',
name: 'password',
label: 'Password:'
}]
}]
},
{
xtype: 'toolbar',
layout: {
pack: 'center'
}, // layout
ui: 'plain',
items: [{
xtype: 'button',
text: 'Register',
id: 'register',
ui: 'action',
}, {
xtype: 'button',
text: 'Login',
id: 'login',
ui: 'confirm',
}] // items (toolbar)
}]
}
});
控制器:
Ext.define('App.controller.Login', {
extend: 'Ext.app.Controller',
requires: [
'App.view.Login',
'Ext.MessageBox'
],
config: {
refs: {
loginForm: '#loginForm',
register: '#register',
login: '#login'
},
control: {
register: {
tap: 'loadRegisterView'
},
login: {
tap: 'loginUser'
}
},
history: null
},
loadRegisterView: function(btn, evt) {
/*var firststep = Ext.create('App.view.Register');
Ext.Viewport.setActiveItem(firststep);*/
},
loginUser: function(btn, evt) {
var values = loginForm.getValues();
console.log(values);
}
});
谢谢
编辑: 所以下面的代码有效,但它不是我看到每个人都这样做的方式。
var form = Ext.getCmp('loginview');
console.log(form.getValues());
其他人都这样做。getLoginView().getValues(); .我不明白“这个”在错误的范围内,甚至会在哪里声明 getLoginView?没有人在他们的 sn-ps 中包含此信息。这是另一个例子Sencha Touch 2 - How to get form values?
【问题讨论】:
标签: javascript extjs sencha-touch sencha-touch-2