Sencha touch 2 Sencha Touch2:将数据从控制器传递到浮动面板不工作

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

我是Sencha Touch2新手,在将数据从控制器传递到listitem tap上的浮动面板时遇到了问题。以下是我的控制器实现代码:

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);