Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/extjs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Extjs 点击图像导航到下一个视图?_Extjs_Sencha Architect_Sencha Touch 2.1_Sencha Touch Theming - Fatal编程技术网

Extjs 点击图像导航到下一个视图?

Extjs 点击图像导航到下一个视图?,extjs,sencha-architect,sencha-touch-2.1,sencha-touch-theming,Extjs,Sencha Architect,Sencha Touch 2.1,Sencha Touch Theming,我正在使用dataview itemTpl显示我的图像(缩略图视图) 我能够正确地显示图像。如何在这些图像上添加itemtap? 因此,当我点击一个特定的图像时,会显示一个新的视图和点击的图像 我用控制器试过了,但运气不好。你能帮我解决这个问题吗 我使用Sencha Architect 2作为示例 我正在尝试此代码。请更正我 第一视图 Ext.define('MyApp.view.MyPanel', { extend: 'Ext.Panel', alias: 'widget.ga

我正在使用dataview itemTpl显示我的图像(缩略图视图)

我能够正确地显示图像。如何在这些图像上添加itemtap? 因此,当我点击一个特定的图像时,会显示一个新的视图和点击的图像


我用控制器试过了,但运气不好。你能帮我解决这个问题吗

我使用Sencha Architect 2作为示例

我正在尝试此代码。请更正我

第一视图

Ext.define('MyApp.view.MyPanel', {
    extend: 'Ext.Panel',
    alias: 'widget.galleryview',

    config: {
        layout: {
            type: 'fit'
        },
        items: [
            {
                xtype: 'dataview',
                id: 'gallerythumbnail',
                layout: {
                    type: 'fit'
                },
                itemTpl: [
                    '<div class="lb-album">',
                    '    <ul>',
                    '        <li>',
                    '    <img src="{filename}" width="120px" heigth="120px"/>',
                    '        </li>',
                    '    </ul>   ',
                    '</div>'
                ],
                store: 'ImageStore'
            }
        ]
    }

});
Ext.define('MyApp.view.FullViewPanel', {
    extend: 'Ext.Panel',

    config: {
        layout: {
            type: 'fit'
        },
        items: [
            {
                xtype: 'carousel',
                id: 'mycarousel'
            }
        ]
    }

});
控制器

Ext.define('MyApp.controller.GalleryController', {
    extend: 'Ext.app.Controller',

    config: {
        refs: {
            nav: 'galleryview'
        },

        control: {
            "dataview": {
                itemtap: 'viewFullScreen'
            }
        }
    },

    viewFullScreen: function(dataview, index, target, record, e, options) {
        Ext.ComponentQuery.query('galleryview').push('MyApp.view.FullView');
        console.log(record);


    }

});

谢谢你

如果你只想在点击图像时做,你可以在该侦听器中检查事件

方法1

listeners : {
    itemtap: function (list, index, item, record, senchaEvent) {
        if (senchaEvent.event.target.nodeName == 'IMG') {
            // Show next view
        }
    }
}
我以前是这样的

Ext.create('Ext.List', {
                itemCls : 'my-dataview-item',
                id : 'myList',
                itemTpl : '<div><img src="' + localStorage.httpServerPrefix + '{imageURI}"/><span id="name">{fullname}</span></div>',
                store : aroundStore,
                listeners : {
                    itemtap: function (list, index, item, record, senchaEvent) {
                        if(senchaEvent.event.target.nodeName =='IMG') {
                            me.othersProfileImageClicked(record.data);
                        }
                        else
                            me.onMessageClickedInAround(list, record);                  
                    }
                }
            });
方法2

您可以使用事件委托,如下所示

Ext.create('Ext.List', {
      itemCls : 'my-dataview-item',
      id : 'myList',
      itemTpl : '<div><img src="' + localStorage.httpServerPrefix + '{imageURI}"/><span id="name">{fullname}</span>',
      store : aroundStore,,
      listeners: [{
            element: 'element',
            delegate: 'img',
            event: 'tap',
            fn: function() {
                alert('One!');
            }
        }
     ]
 });
Ext.create('Ext.List'{
itemCls:“我的数据视图项”,
id:“myList”,
itemTpl:“{fullname}”,
门店:周边门店,,
听众:[{
元素:'元素',
代表:“img”,
事件:“点击”,
fn:函数(){
警报(‘一’);
}
}
]
});

事件委派可能正是您想要的:“我与controller一起尝试过,但没有成功”。你能告诉我们你在过去3个小时里尝试的代码吗。我尝试了控制器和事件委托,但没有运气!!如果(current_data.xindex>=0){Ext.Msg.alert(“Opps!!!”);/*var details='MyApp.view.ImageContainer';//this.push(details);无法将数据从该视图推送到其他视图如何将数据从该视图导航/推送到其他视图?(我正在使用Sencha Architect在Ext.Dataview的itemTpl中编写此代码)*/this.up('testpanel').push({xtype:'imagecontainer'});}else{Ext.Msg.alert(“Opps!!!”,“调用数据时出错”);}获取未捕获错误:无法调用未定义的方法'push'。有什么可以帮我找到解决方法吗。谢谢:谢谢你们分享答案,但我的代码中并没有senchaEvent。我正在使用Sencha architect。我在itemTap函数中得到的参数如下,您能为下面的itemTap提供一些帮助吗:函数(dataview,index,target,record,e,option){var store=Ext.getStore('TestStore');store.load();var current_store=dataview.getStore();var current_data=dataview.getStore().getAt(index.getData();//this.up('testpanel')。push({xtype:'imagecontainer'});}但是这个代码不起作用。我在这个数据视图上有img thunbnail,在点击图像时,它应该导航到Plz helpput这个“警报(e.event.target.nodeName)”在itemtap函数中,告诉我当您在图像上单击时您得到了什么,当我在图像上单击时您得到了什么警报我在警报中得到了IMG如果您仍然有问题,请告诉我?
Ext.create('Ext.List', {
      itemCls : 'my-dataview-item',
      id : 'myList',
      itemTpl : '<div><img src="' + localStorage.httpServerPrefix + '{imageURI}"/><span id="name">{fullname}</span>',
      store : aroundStore,,
      listeners: [{
            element: 'element',
            delegate: 'img',
            event: 'tap',
            fn: function() {
                alert('One!');
            }
        }
     ]
 });