1

我目前正在使用 Sencha Touch 2 创建图片库。我已经成功地从主图库中的 JSON 存储加载图像,其中包含图像的缩略图。我希望能够让用户单击/点击主画廊中的每个图像,并让 TAP EVENT 将图像推送到新视图中,该视图将以全尺寸显示图像。

目前,这是我的观点:

Ext.define("tumblrPhotos.view.SampleView", {
extend: 'Ext.dataview.DataView',
xtype:'sampleviewtest',
requires: [
    'tumblrPhotos.store.PhotoStore',
],

config: {
    title: 'Photos',
    layout: 'card',
    id: 'gallerythumbnail',
    store: 'PhotoStore',
    styleHTMLContent: true,
    fullscreen: true,
    scrollable: 'vertical',
    baseCls: 'gallery-image',
    itemTpl: new Ext.XTemplate ([
        '<div class="gallery-thumbnail">',
        '<tpl for="photos[0].alt_sizes[0]">',
            '<img src="{url}" class="test" />',
        '</tpl>',
        '</div>'
    ].join('')
    ),
},  

});

到目前为止,这是我的控制器。这部分不起作用:

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

config: {
    refs: {
         nav: 'galleryview', //the xtype

    }, 
    control: {
        '#gallerythumbnail': { //the xtype
            itemtap: 'viewFullScreen',
        }
    }
},

viewFullScreen : function(dv,index,target,record,e,eOpts){
    Ext.ComponentManager.get('galleryview').push('tumblrPhotos.view.FullView');
    console.log(record);
}

});

非常感谢所有可以帮助我的人!对此,我真的非常感激!

4

1 回答 1

0

根据您的评论,错误相对明显......

Ext.ComponentManager.get('galleryview')

...不返回任何东西。

查看 Sencha Touch 的 API 文档,我发现 Ext.ComponentManager 是一个私有类 - 所以你真的不应该使用它。也许您应该使用 Ext.ComponentQuery 或其他东西来获取该组件。

并且考虑到您在控制器上为该 xtype 定义了“ref”,您可以使用自动创建的 getter(我认为在您的情况下为 getNav())。

最后但并非最不重要的一点是,您没有为该特定组件(galleryview)发布任何代码,因此我无法真正推测超出我刚才所说的内容。

于 2013-01-16T19:01:37.580 回答