слушатели на DataView в Сенча Touch 2 - PullRequest
1 голос
/ 01 декабря 2011

У меня проблема с 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}',' ',' ',' ',' ');

Ответы [ 2 ]

0 голосов
/ 05 декабря 2011

Я выяснил, в чем проблема.

Просмотр данных находился в контейнере, который был в TabPanel.

После некоторых проб и ошибок я обнаружил, что если я определю контейнеркак объект конфигурации с xtype: 'container', он работает.Если я создаю контейнер над Ext.create ('Ext.Container', {});это как-то не работает.Я уже спрашивал вас на форуме Sencha, если это ошибка или особенность, я буду держать вас в курсе.

0 голосов
/ 02 декабря 2011

Пожалуйста, попробуйте ниже код;(для 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);
         }
});
...