繁体   English   中英

如何在2个视图之间的sencha中发送数据

[英]How to send data in sencha between 2 views

我正在学习煎茶,我无法在两个视图之间进行数据传输。 我有2个意见。 第一个视图具有数据列表。 当数据列表项单击即打开另一个视图时。 我需要将列表项的值发送到第二个视图。

有人可以帮我吗?

第一眼。

Ext.define('griddeneme.view.pnlAna', {
extend: 'Ext.Panel',
alias: 'widget.pnlana',

requires: [
    'Ext.XTemplate'
],

config: {
    layout: {
        type: 'vbox'
    },
    items: [
        {
            xtype: 'panel',
            flex: 1,
            style: 'background-color:#81BEF7',
            items: [
                {
                    xtype: 'button',
                    docked: 'left',
                    height: 15,
                    itemId: 'mybutton1',
                    style: 'margin-Top',
                    ui: 'decline',
                    text: 'Çıkış'
                }
            ]
        },
        {
            xtype: 'panel',
            flex: 9,
            layout: {
                type: 'vbox'
            },
            items: [
                {
                    xtype: 'list',
                    flex: 1,
                    itemId: 'mylist',
                    itemTpl: [
                        '<div>{ad} - {yazar}</div>'
                    ],
                    store: 'strYazarlar'
                }
            ]
        }
    ],
    listeners: [
        {
            fn: 'onMybutton1Tap',
            event: 'tap',
            delegate: '#mybutton1'
        },
        {
            fn: 'onMylistItemTap',
            event: 'itemtap',
            delegate: '#mylist'
        }
    ]
},

onMybutton1Tap: function(button, e, eOpts) {

    var pnlAna = Ext.create('griddeneme.view.pnlGiris');



    Ext.Viewport.setActiveItem(pnlAna);
},

onMylistItemTap: function(dataview, index, target, record, e, eOpts) {
    //alert(record.data.ad);

    var Details=Ext.create('griddeneme.view.pnlDetail');
        Details.setData(record);

    Ext.Viewport.setActiveItem(Details);
}

});

第二种观点

Ext.define('griddeneme.view.pnlDetail', {
extend: 'Ext.Panel',
alias: 'widget.pnldetail',

config: {
    layout: {
        type: 'vbox'
    },
    items: [
        {
            xtype: 'panel',
            flex: 1,
            style: 'background-color:#81BEF7',
            items: [
                {
                    xtype: 'button',
                    docked: 'left',
                    height: 15,
                    ui: 'back',
                    text: 'Geri'
                }
            ]
        },
        {
            xtype: 'panel',
            flex: 8,
            itemId: 'mypanel7',
            style: '',
            items: [
                {
                    xtype: 'label',
                    html: 'Kitap Adı:',
                    id: '',
                    minWidth: 150,
                    style: 'color:green; float:left'
                },
                {
                    xtype: 'label',
                    html: 'f',
                    id: 'lblAd'
                },
                {
                    xtype: 'label',
                    html: 'Yazar:',
                    minWidth: 150,
                    style: 'float:left;color:green;'
                },
                {
                    xtype: 'label',
                    html: 'ggg',
                    id: 'lblKitap'
                }
            ],
            listeners: [
                {
                    fn: function(component, eOpts) {
                        alert(record.data.ad);
                    },
                    event: 'initialize'
                }
            ]
        }
    ]
}

});

Ext.define('griddeneme.view.pnlDetail', {
extend: 'Ext.Panel',
alias: 'widget.pnldetail',

config: {
    someData: null,
    ...

并实例化您的pnlDetail:

onMylistItemTap: function(dataview, index, target, record, e, eOpts) {

    var Details=Ext.create('griddeneme.view.pnlDetail',{
        someData: // here you can set your data
    });

    Ext.Viewport.setActiveItem(Details);
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM