Sencha touch sencha touch getView()?
如何在Sencha touch中调用Sencha touch sencha touch getView()?,sencha-touch,Sencha Touch,如何在Sencha touch中调用getView(view\u name)`?我通常在extjs上这样做,但在sencha touch上我做不到。我无法理解应用程序的概念 run_edit: function(data) { $this = this; this.mode = "update"; this.data = data; this.win = this.getView('Group_prop').create(); var form = th
getView(
view\u name)`?我通常在extjs上这样做,但在sencha touch上我做不到。我无法理解应用程序的概念
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']
});
util.form_require({
form:form,
items:['GROUP_KODE','GROUP_NAMA']
});
this.win.show();
},
我看到您正在尝试创建视图并将其设置为window,在sencha touch中,您可以这样做:
Ext.Viewport.add(Ext.create('MyApp.view.ViewName'));
var view = Ext.getCmp('ViewId');
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: 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']
});
}
...,
config: {
refs : {
groupProb : {
autoCreate: true,
selector: '#groupProb',
xtype: 'group_prob'
}
},
control: {
groupProb : {
show: 'run_edit'
},
...
},
...
},
...
您可以使用任何其他容器而不是视口,并将新创建的视图设置为该容器
Ext.getCmp('myContainerId').add(Ext.create('MyApp.view.ViewName'));
要稍后获取此视图,必须在视图中指定id
config,然后按如下方式获取:
Ext.Viewport.add(Ext.create('MyApp.view.ViewName'));
var view = Ext.getCmp('ViewId');
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: 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']
});
}
...,
config: {
refs : {
groupProb : {
autoCreate: true,
selector: '#groupProb',
xtype: 'group_prob'
}
},
control: {
groupProb : {
show: 'run_edit'
},
...
},
...
},
...
有两种方法可以调用视图 一, 二,
好的,看来您正在尝试获取视图:
Group\u prop
。确保此视图在其配置中设置了id
或itemId
。e、 g
Ext.define('MyApp.view.GroupProb', {
extend: 'Ext.Panel',
alias: 'widget.group_prob',
config: {
...
itemId: 'groupProb',
...
},
....
});
现在,您需要在控制器中为此视图创建一个引用以正确访问它。所以你的控制器看起来像这样:
Ext.Viewport.add(Ext.create('MyApp.view.ViewName'));
var view = Ext.getCmp('ViewId');
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: 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']
});
}
...,
config: {
refs : {
groupProb : {
autoCreate: true,
selector: '#groupProb',
xtype: 'group_prob'
}
},
control: {
groupProb : {
show: 'run_edit'
},
...
},
...
},
...
现在,从您的run\u edit
函数中,您似乎正在使用this.win
变量中的windows
(如果我错了,请纠正我)。在Sencha Touch中,您可以使用面板
。此外,在此函数末尾,您在this.win
上调用show
函数,这表明您希望在显示this.win
时执行run\u edit
。也就是说,您可能希望您的运行_edit
函数如下所示:
Ext.Viewport.add(Ext.create('MyApp.view.ViewName'));
var view = Ext.getCmp('ViewId');
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: 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']
});
}
...,
config: {
refs : {
groupProb : {
autoCreate: true,
selector: '#groupProb',
xtype: 'group_prob'
}
},
control: {
groupProb : {
show: 'run_edit'
},
...
},
...
},
...
由于我们希望在显示groupProbPanel
时发生这种情况,因此需要在控件中设置一个。因此,控制器的config
应如下所示:
Ext.Viewport.add(Ext.create('MyApp.view.ViewName'));
var view = Ext.getCmp('ViewId');
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: 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']
});
}
...,
config: {
refs : {
groupProb : {
autoCreate: true,
selector: '#groupProb',
xtype: 'group_prob'
}
},
control: {
groupProb : {
show: 'run_edit'
},
...
},
...
},
...
也许您想使用Ext.getCmp(“组件id”)
。检查Sencha文档:但是对象还没有生成?此方法是控制器的一部分吗?你是说你想通过控制器获取视图吗?是的,你是对的。这是我的控制器的一部分,n我想获取我的视图(控制器视图)的实例。
通常我使用'this.myview=this.getView(“myview_name”).create()
但我不能在sencha thouchI写下并回答时这样做。我希望这是有帮助的。因为我没有太多工作要做,所以我做了一些假设。请原谅:)。我已经尝试过这个,但我想从控制器调用视图(包含在控制器中的视图)。我该怎么办?哇,你太棒了。非常感谢,我收到了这个。我试过这个。N关于这个。温,对不起,我是sencha touch的新手:)。非常感谢你。