Sencha Touch 2-无法从控制器获取参考视图 [英] Sencha Touch 2- Unable to get ref view from controller
本文介绍了Sencha Touch 2-无法从控制器获取参考视图的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正试着通过裁判来查看。在控制器中定义的方法内。我收到错误消息,显示
对象[对象对象]没有方法‘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();
}
});
推荐答案
引用-命名组件查询选择器的集合,使您可以轻松获取对页面上关键组件的引用。
根据http://docs.sencha.com/touch/2-0/#!/api/Ext.ComponentQuery(关于可以在ReFS中使用的选择器类型),可以使用:
检索组件1)它们的xtype:‘panel’、‘extfield’等。
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' }
这篇关于Sencha Touch 2-无法从控制器获取参考视图的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文