1

私は現在、SenchaTouch2を使用して画像ギャラリーを作成しています。画像のサムネイルを備えたメインギャラリーの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」が定義されていることを考えると、自動作成されたゲッターを使用できます(あなたの場合はgetNav()だと思います)。

大事なことを言い忘れましたが、あなたはその特定のコンポーネント(galleryview)のコードを投稿しなかったので、私が今言ったことを超えて実際に推測することはできません。

于 2013-01-16T19:01:37.580 に答える