Sencha Touch 2中的DataView上的监听器

时间:2011-12-01 18:20:17

标签: mobile sencha-touch sencha-touch-2

我遇到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('',                         ',                             ',                                     '{名称}',                                 ',                             ',                                 ',                                     ' {价钱}',                                 ',                             ',                         ',                      “”     );

2 个答案:

答案 0 :(得分: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);
         }
});

答案 1 :(得分:0)

我发现了问题所在。

数据视图位于TabPanel中的Container中。

经过一些试验和错误,我发现如果我将Container定义为配置对象     xtype:'容器' 有用。如果我创建容器     Ext.create('Ext.Container',{});  它不知何故不起作用。 已经在Sencha论坛中询问是否有Bug或功能,我会及时通知您。