【发布时间】:2026-01-16 15:45:02
【问题描述】:
我正在使用 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'
}
]
}
});
第二个视图 - 点击 img 时必须显示此视图
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);
}
});
谢谢
【问题讨论】:
-
事件委托可能就是你要找的:
-
“我用控制器试过这个,但没有运气”。你能告诉我们你尝试过的代码吗
-
我从过去 3 小时开始尝试这个。我尝试了控制器和事件委托,但没有运气!
-
if(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!!!", "调用数据时出现问题"); }
-
得到未捕获的错误:无法调用未定义的方法“推送”可以帮助我找到解决方案。谢谢
标签: extjs sencha-architect sencha-touch-2.1 sencha-touch-theming