Sencha touch 2 Sencha Touch2:将数据从控制器传递到浮动面板不工作
我是Sencha Touch2新手,在将数据从控制器传递到listitem tap上的浮动面板时遇到了问题。以下是我的控制器实现代码:Sencha touch 2 Sencha Touch2:将数据从控制器传递到浮动面板不工作,sencha-touch-2,panel,Sencha Touch 2,Panel,我是Sencha Touch2新手,在将数据从控制器传递到listitem tap上的浮动面板时遇到了问题。以下是我的控制器实现代码: Ext.define('CustomList.controller.Main', { extend: 'Ext.app.Controller', requires:['CustomList.view.DatePanel'], config: { refs: { listView: 'listite
Ext.define('CustomList.controller.Main', {
extend: 'Ext.app.Controller',
requires:['CustomList.view.DatePanel'],
config: {
refs: {
listView: 'listitems'
},
control: {
'main test2 list': {
activate: 'onActivate',
itemtap: 'onItemTap'
}
}
},
onActivate: function() {
console.log('Main container is active');
},
onItemTap: function(view, index, target, record, event) {
console.log('Item was tapped on the Data View');
Ext.Viewport.add({
xtype: 'DatePanel'
});
}
});
我可以在控制器中获取数据,DatePanel.js是我的浮动面板。
DatePanel.js:
Ext.define('CustomList.view.DatePanel', {
extend: 'Ext.Panel',
alias: 'widget.DatePanel',
xtype:'datepanel',
config: {
itemid:'DatePanel',
modal:true,
centered: true,
hideOnMaskTap:true,
width:'500px',
height:'650px',
items:[
{
styleHtmlCls:'homepage',
tpl:'<h4>{name3}</h4>'
},
{
xtype:'toolbar',
docked:'bottom',
items:[{
text:'OK',
ui:'confirm',
action:'ShowTurnOverReport',
listeners : {
tap : function() {
console.log('Ok');
}
}
},
{
text:'Cancel',
ui:'confirm',
action:'Cancel',
listeners : {
tap : function() {
console.log('Cancel');
var panelToDestroy = Ext.getCmp('datepanel');
panelToDestroy.destroy();
Ext.Viewport.add(Ext.create('CustomList.view.Test2'));//Test.js is my list Panel
}
}
}]
}
]
}
});
Ext.define('CustomList.view.DatePanel'{
扩展:“Ext.Panel”,
别名:“widget.DatePanel”,
xtype:“日期面板”,
配置:{
itemid:'DatePanel',
莫代尔:是的,
对,,
hideOnMaskTap:没错,
宽度:'500px',
高度:'650px',
项目:[
{
styleHtmlCls:“主页”,
tpl:“{name3}”
},
{
xtype:“工具栏”,
停靠:'底部',
项目:[{
文本:'确定',
ui:“确认”,
操作:'ShowTurnOverReport',
听众:{
点击:函数(){
console.log('Ok');
}
}
},
{
文本:'取消',
ui:“确认”,
操作:'取消',
听众:{
点击:函数(){
console.log('Cancel');
var panelToDestroy=Ext.getCmp('datepanel');
panelToDestroy.destroy();
Ext.Viewport.add(Ext.create('CustomList.view.Test2');//Test.js是我的列表面板
}
}
}]
}
]
}
});
帮我摧毁“取消”按钮上的面板。
谁能帮帮我吗。谢谢。首先创建要添加的面板实例
var floatingDatePanel = Ext.create('Yourapp.view.YourDatePanel');
下一步在itemTap上获取所选列表项的数据
var data = record.getData();
使用setData()
方法将此数据分配给floatingDatePanel
更新
在查看面板代码之后,我想您应该将数据设置为面板ie中的第一项
{
styleHtmlCls:'homepage',
tpl:'<h4>{name3}</h4>'
}
到
因为,这是面板中第一个指定了模板的项目,希望也是您想要设置数据的地方
最后,您可以使用将此面板添加到视口中
Ext.Viewport.add(floatingDatePanel);
谢谢但我无法在我的DatePanel.js.added DatePanel.js中获取数据供您参考。我已更新了我的答案。如果你下一步要用数据说明你想要什么,那就很清楚了。您只是想稍后显示或操作它?也张贴用于显示列表的型号和商店的代码。非常感谢。现在可以工作了,你能帮我在“取消”按钮上销毁浮动面板吗?点击。try
var panelToDestroy=Ext.getCmp('datepanel')然后是panelToDestory.destroy()代码>但首先,您需要将另一项添加到视口中,以取代当前面板。然后摧毁当前面板。如果您可以同时作为列表和datepanel的父级使用,这将更加容易。请在getCmp中使用id值“datepanel”。
floatingDatePanel.getAt(0).setData(data);
Ext.Viewport.add(floatingDatePanel);