Слушатели на DataView в Sencha Touch 2
-
27-10-2019 - |
Вопрос
У меня проблема с 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.template ('', '', '', '{name}', '', '', '', '{price}', '', '', '', '');
Решение 2
Я узнал, в чем проблема.
DataView был в контейнере, который был в табпанеле.
После некоторой проб и ошибок я обнаружил, что если я определяю контейнер как объект конфигурации с xtype: «контейнер», который он работает. Если я создаю контейнер через ext.create ('ext.container', {}); Это как -то не работает. Уже спросил на форуме Sencha, если это ошибка или функция, я буду держать вас в курсе.
Другие советы
Пожалуйста, попробуйте ниже код; (для 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);
}
});