sencha framework examples example sencha-touch extjs

sencha-touch - framework - sencha touch download



Sencha Touch itemtap (2)

El primer argumento pasado al evento itemtap no es el registro del elemento List invocado, sino el DataView en sí mismo.

De los documentos:

itemtap: (Ext.DataView this, Number index, Ext.Element item, Ext.EventObject e) Se activa cuando se toca un nodo en

Listeners will be called with the following arguments: this : Ext.DataView The DataView object index : Number The index of the item that was tapped item : Ext.Element The item element e : Ext.EventObject The event object

Puede tomar el registro intervenido utilizando:

dataView.store.getAt(index); // where ''dataView'' is 1st argument and ''index'' the 2nd

Tengo una lista de contactos que sencha touch muestra en una lista. Luego, cuando haga clic en un nombre en la lista, debería deslizarse hacia la derecha y decir ¡Hola, {nombre de contacto}! pero cuando se desliza en este momento, simplemente dice "¡Hola!" en la línea 29 es donde está ocurriendo la acción para el elemento toque, creo que el problema está aquí. Simplemente no sé cómo formatearlo correctamente. A continuación está mi código fuente.

ListDemo = new Ext.Application({ name: "ListDemo", launch: function() { ListDemo.detailPanel = new Ext.Panel({ id: ''detailpanel'', tpl: ''Hello, {firstName}!'', dockedItems: [ { xtype: ''toolbar'', items: [{ text: ''back'', ui: ''back'', handler: function() { ListDemo.Viewport.setActiveItem(''disclosurelist'', {type:''slide'', direction:''right''}); } }] } ] }); ListDemo.listPanel = new Ext.List({ id: ''disclosurelist'', store: ListDemo.ListStore, itemTpl: ''<div class="contact">{firstName} {lastName}</div>'', listeners:{ itemtap: function(record, index){ ListDemo.detailPanel.update(record.data); ListDemo.Viewport.setActiveItem(''detailpanel''); } } }); ListDemo.Viewport = new Ext.Panel ({ fullscreen: true, layout: ''card'', cardSwitchAnimation: ''slide'', items: [ListDemo.listPanel, ListDemo.detailPanel] }); }

});


itemtap: function(view, index, item, e) { var rec = view.getStore().getAt(index); ListDemo.detailPanel.update(rec.data); }

Así es como lo hice funcionar.