Hörer auf Dataview in Sencha Touch 2
-
27-10-2019 - |
Frage
Ich habe ein Problem mit einem Dataview
. Das Dataview
Sollte eine Zuhörer auf den Gegenständen haben, die es rendert.
Also hier ist, wie mein Dataview
sieht aus wie:
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);
}
}
});
Hat jemand eine Idee, warum das nicht funktioniert?
Bearbeiten: Vorlagendaten hinzugefügt: var childrentemplate = new ext.xtemplate ('', '', '', '{name}', '', '', '', '{Preis}', '', '',, '', '');
Lösung 2
Ich fand heraus, was das Problem war.
Die Dataview befand sich in einem Container, der sich in einem Tabpanel befand.
Nach einigen Versuch und Irrtum habe ich herausgefunden, dass es funktioniert, wenn ich den Container als Konfigurationsobjekt mit XTYPE definiere: 'Container', funktioniert. Wenn ich den Container über ext.create erstelle ('ext.Container', {}); Es funktioniert irgendwie nicht. Bereits in Sencha Forum gefragt, ob es sich um einen Fehler oder eine Funktion handelt, werde ich Sie auf dem Laufenden halten.
Andere Tipps
Bitte versuchen Sie den folgenden Code. (für 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
});
Hörer hinzufügen mit;
childrenData.on({
tap: function(data,index){
var record = data.getStore().getAt(index);
console.log(record);
}
});