1

我遇到了一个问题DataviewDataview应该在它呈现的项目上有一个监听器。

所以这是我的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

请尝试以下代码;(对于 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 回答
0

我发现了问题所在。

数据视图位于 TabPanel 中的容器中。

经过反复试验,我发现如果我使用 xtype: 'container' 将 Container 定义为配置对象,它就可以工作。如果我通过 Ext.create('Ext.Container', {}); 创建容器 它以某种方式不起作用。已经在 Sencha 论坛中询问它是错误还是功能,我会及时通知您。

于 2011-12-05T17:56:24.647 回答