1

で問題が発生しましたDataview。にはDataview、レンダリングするアイテムにリスナーが必要です。

だからここに私Dataviewのように見える方法です:

var childrenData = Ext.create('Ext.DataView', {
    store: {
        fields: ['id', 'name', 'children'],
        proxy: {
            type: 'ajax',
            url: '/category/view',
            reader: {
                type: 'json',
            }
        },
        autoLoad: true,
    },
    itemTpl: childrenTemplate,
    listeners: {
             itemtap: function(data,index){
                    var record = data.getStore().getAt(index);
                console.log(record);
          }
    }
});

これがうまくいかない理由は誰にもありますか?

編集: 追加されたテンプレート データ: var childrenTemplate = new Ext.XTemplate('', '', '', '{name}', '', '', '', ' {price}', '', '', '', '' );

4

2 に答える 2

0

私は問題が何であるかを知りました。

データビューは、TabPanel にあるコンテナーにありました。

試行錯誤の末、xtype: 'container' を使用して Container を構成オブジェクトとして定義すると、それが機能することがわかりました。Ext.create('Ext.Container', {}); でコンテナを作成した場合 どういうわけかうまくいきません。バグなのか機能なのかについて、Sencha フォーラムですでに尋ねられています。最新情報をお届けします。

于 2011-12-05T17:56:24.647 に答える
0

以下のコードを試してください。(sencha-touch-2用)

var childrenData = Ext.create('Ext.DataView', {
        store: {
            fields: ['id', 'name', 'children'],
            proxy: {
                type: 'ajax',
                url: '/category/view',
                reader: {
                    type: 'json',
                }
            },
            autoLoad: true,
        },
        itemTpl: childrenTemplate
    });

リスナーを追加します。

childrenData.on({
      tap: function(data,index){
              var record = data.getStore().getAt(index);
              console.log(record);
         }
});
于 2011-12-02T07:57:09.957 に答える