2
我試圖通過參考視圖獲取視圖。在控制器中定義的方法內。我得到的錯誤是Sencha Touch 2-無法從控制器獲取參考視圖
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();
}
});
您也可以使用'itemId'而不是'id'。 [itemId](http://docs.sencha.com/touch/2-0/#!/api/Ext.Component-cfg-itemId)在本地作用於容器。你可以用同樣的方式引用前面的#號。 – Justin