好了,所以好像你正試圖獲取視圖:Group_prop
。確保此視圖在其配置中設置了id
或最好是itemId
。例如
Ext.define('MyApp.view.GroupProb', {
extend: 'Ext.Panel',
alias: 'widget.group_prob',
config: {
...
itemId: 'groupProb',
...
},
....
});
現在在你的控制器中,你需要爲這個視圖創建一個引用來正確訪問它。因此,您的控制器將是這個樣子:
Ext.define('MyApp.controller.MyController', {
extend: 'Ext.app.Controller',
config: {
refs : {
groupProb : {
autoCreate: true,
selector: '#groupProb',
xtype: 'group_prob'
}
},
control: {
...
},
...
},
run_edit: function(data) {
$this = this;
this.mode = "update";
this.data = data;
this.win = this.getView('Group_prop').create();
var form = this.win.down('form');
var util = this.getController('controller_Helper');
form.getForm().loadRecord(data);
util.form_lock({
form:form,
items:['GROUP_KODE']
});
this.win.show();
},
...
});
從
run_edit
功能
現在,它好像你與windows
從this.win
變量(糾正我,如果我錯了)的工作。在Sencha Touch中,您使用。同樣在該功能結束時,您可以撥打this.win
上的show
功能,這表示您希望在顯示this.win
時執行run_edit
。話雖這麼說,你可能希望你的run_edit
功能看起來是這樣的:
run_edit: function() {
var me = this,
mode = 'update',
data = data,
groupProbPanel = me.getGroupProb();
// This assumes that your form component has an itemId.
// You need one inorder use the down method.
var form = groupProbPanel.down('#form_itemId');
// You may want to double check this. I don't think that is how you
// you get the controller.
var util = this.getController('controller_Helper');
form.getForm().loadRecord(data);
util.form_lock({
form:form,
items:['GROUP_KODE']
});
}
因爲我們希望在groupProbPanel
顯示我們需要設置一個show event listener我們control
配置這樣的事情發生。所以,你的控制器的config
應該是這樣的:
...,
config: {
refs : {
groupProb : {
autoCreate: true,
selector: '#groupProb',
xtype: 'group_prob'
}
},
control: {
groupProb : {
show: 'run_edit'
},
...
},
...
},
...
也許你想用'Ext.getCmp( 'the_component_id')'。檢查Sencha文檔:http://docs.sencha.com/touch/2-1/#!/ api/Ext-method-getCmp – cclerville
但該對象尚未製作。 ? –
這種方法是你的控制器的一部分嗎?你是說你想通過控制器獲取視圖嗎? – cclerville