我正试图通过参考来查看。在控制器中定义的方法内部。我收到的错误是
Object [object Object]没有方法'getUserForm'。
这是我的观点和控制者,如果有人可以帮助我,我会很高兴。
提前致谢。
用户表单
Ext.define(appName + '.view.user.UserForm', {
extend : 'Ext.form.FieldSet',
alias : 'widget.userform',
title : 'User Form',
instructions: 'Fill your personel information',
iconCls : 'icon-form',
fullscreen: true,
config : {
items : [{
xtype : 'toolbar',
docked : 'top',
title : 'Registeration Form',
iconCls : 'icon-form'
}, {
xtype : 'textfield',
label : 'Name ',
name : 'name'
}, {
xtype : 'textfield',
label : 'Surname ',
name : 'surname'
}, {
xtype : 'passwordfield',
label : 'Password ',
name : 'password'
}, {
xtype : 'toolbar',
dock : 'bottom',
defaults : {
xtype : 'button',
flex : 1
},
layout : { pack : 'center' },
items : [{
text : 'Reset',
iconCls : 'icon-refresh-32',
ui : 'action',
action : 'reset'
}, {
text : 'Save',
ui : 'action',
iconCls : 'icon-save-32',
action : 'save'
}]
}]
}
});
用户控制器
Ext.define(appName + '.controller.UserController', {
extend : 'Ext.app.Controller',
stores : [ 'Users' ],
models : [ 'User' ],
views : [ 'user.UserList', 'user.UserForm' ],
refs : [{
ref : 'userList',
selector: 'userlist'
}, {
ref : 'userForm',
selector: 'userform'
}],
init : function() {
this.control({
'userform button[action=save]' : {
release : this.saveUserForm
},
'userform button[action=reset]' : {
release : this.resetUserForm
}
});
},
saveUserForm : function(btn) {
// Ext.Msg.alert('SUCCESS', 'Form is successfully saved.');
**var form = this.getUserForm();** // ERROR!
alert(form);
// Ext.Msg.alert('Form Values', JSON.stringify(form.getValues(), null, 2));
},
resetUserForm : function(btn) {
**var form = this.getUserForm();** // ERROR!
// var form = btn.up('form');
form.reset();
}
});
答案 0 :(得分:2)
refs - 一组命名的ComponentQuery选择器,可以轻松获取对页面上关键组件的引用。
根据http://docs.sencha.com/touch/2-0/#!/api/Ext.ComponentQuery(它是关于你可以在“refs”中使用的选择器的类型),可以使用以下方法检索组件:
1)他们的 xtype :'panel','textfield'等。
2)他们的 id :'#idOfYourComponent'
在你的情况下:
1)用户表格
Ext.define(appName + '.view.user.UserForm', { extend : 'Ext.form.FieldSet', xtype : 'userForm' alias : 'widget.userform',
用户控制器
Ext.define(appName + '.controller.UserController', { extend : 'Ext.app.Controller', stores : [ 'Users' ], models : [ 'User' ], views : [ 'user.UserList', 'user.UserForm' ], refs : { mySuperMegaForm: 'userForm' }
2)用户表格
Ext.define(appName + '.view.user.UserForm', { extend : 'Ext.form.FieldSet', id : 'userFormId' alias : 'widget.userform',
用户控制器
Ext.define(appName + '.controller.UserController', { extend : 'Ext.app.Controller', stores : [ 'Users' ], models : [ 'User' ], views : [ 'user.UserList', 'user.UserForm' ], refs : { mySuperMegaForm: '#userFormId' }