2011-06-11 10 views
7

मैं संपर्कों कि Sencha स्पर्श एक सूची में प्रदर्शित कर रहा है की एक सूची है। फिर जब आप सूची में किसी नाम पर क्लिक करते हैं तो उसे दाईं ओर स्लाइड करना चाहिए और हैलो {संपर्क नाम} कहें! लेकिन जब यह अभी खत्म हो जाता है तो यह हैलो कहता है हैलो! लाइन 2 9 पर जहां आइटम टैप के लिए कार्रवाई हो रही है, मुझे समस्या है कि समस्या यहां है। मैं बस यह नहीं जानता कि इसे सही तरीके से कैसे प्रारूपित किया जाए। नीचे मेरा स्रोत कोड है।Sencha टच itemtap

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] 
    }); 

} 

});

उत्तर

11

पहला तर्क itemtap घटना के लिए पारित सूची आइटम टैप का रिकॉर्ड नहीं है, यह DataView ही है।

डॉक्स से

:

itemtap: (Ext.DataView इस, संख्या सूचकांक, Ext.Element आइटम, Ext.EventObject ई) आग जब एक नोड

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 
पर उपयोग किया जाता है

आप का उपयोग करके उपयोग किया रिकॉर्ड हड़पने कर सकते हैं:

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

मैं सिर्फ Sencha स्पर्श DataView वस्तु, आइटम है कि उपयोग किया गया था, आइटम तत्व, और घटना वस्तु का सूचकांक है क्या सीख रहा हूँ। साथ ही, डेटा पहली तर्क और 'इंडेक्स' को दूसरी बार कैसे देखता है। आपकी सहायता के लिए धन्यवाद. – Alex

+0

डेटाव्यू से प्राप्त एक सूची और 'itemtap' ईवेंट डेटाव्यू बेस क्लास से विरासत में मिलता है। इसलिए सूची का उपयोग करते समय दस्तावेज़ीकरण थोड़ा उलझन में है। ईवेंट हैंडलर के पहले तर्क में आपकी सूची उदाहरण का संदर्भ है (आपके उदाहरण में परिवर्तनीय 'ListDemo.listPanel' के समतुल्य)। 'इंडेक्स' तर्क टैप किए गए आइटम की सूची में मौजूद स्थान को संदर्भित करता है उदा। 1 सूची टैप आइटम सूचकांक = 0, टैप दूसरे मद सरल उपयोग के मामलों के लिए सूचकांक = 1 आदि देता है आप आइटम और ई तर्क अनदेखा कर सकते हैं देता है - प्लस मैं स्थान से बाहर चल रहा हूँ .. :) – Stuart

+0

यह जब टूट किया जा रहा है समूहीकृत सूचियों के साथ काम करना। – Art

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

कि मैं इसे कैसे काम करने के लिए मिला है।

+2

समूहबद्ध सूचियों के साथ काम करते समय यह टूटा हुआ प्रतीत होता है। – Art

+1

ध्यान दें कि सेन्चा टच 2 में अद्यतन विधि अब सेटडाटा() है – cyberwombat

संबंधित मुद्दे