2013-11-25 2 views
6

मुझे एक फोनगैप-लपेटा हुआ सेन्चा टच (v1.1.1) ऐप मिला है जिसमें कुछ स्टोर हैं, और एक सूची है। के बाद आप के रूप में "User 1" प्रवेश किया हो, और उसके बाद लॉग आउट करके फिर से लॉग इन के रूप में "User 2"स्टोर/सूची सेन्चा को फिर से लोड नहीं किया गया 1.1.1

समस्या होती है। सूची स्टोर प्रॉक्सी द्वारा प्राप्त किए गए नए खाता डेटा के साथ रीफ्रेश नहीं होगी।

मैं वर्तमान में ही List पर .refresh() कॉल करने के लिए है, जो डॉक्स के अनुसार भी अपने डेटा को ताज़ा करने के दुकान का कारण होगा प्रयास कर रहा हूँ (हालांकि, मैं मैन्युअल रूप से कर रहा हूँ कि हाथ वैसे भी पहले)

var sL = Ext.getCmp('AccountsList'); 
sL.refresh(); 
sL.scroller.scrollTo({x:0,y:0}); 

हमने बिना किसी परिणाम वाले .sync() स्टोर की भी कोशिश की है।

Ext.getStore('AccountsTransfersTo').sync(); 
Ext.getStore('AccountsTransfersFrom').sync(); 
Ext.getStore('AccountsStore').sync(); 

कोई विचार क्या समस्या है, या किसी ने कुछ ऐसा ही किया है?

उत्तर

1

यह कैशिंग समस्या की तरह लगता है। या एक राज्य समस्या। एक लिंक: पेज से http://html5wood.com/sencha-touch-difference-between-ext-get-and-ext-getcmp/

: Sencha टच: Ext.get() और Ext.getCmp()

महत्वपूर्ण के बीच अंतर: यह एक ही तत्व ऑब्जेक्ट सरल कैशिंग के कारण फिर से पुन: प्राप्त करने पर । इसका मतलब है कि यह दूसरा समय पर गलत तत्व देता है। Ext.fly() का उपयोग इस समस्या से बचने के लिए किया जा सकता है।

उम्मीद है कि यह माइक की सहायता करता है।

3

refresh स्टोर को फिर से लोड नहीं करेगा, यह स्टोर में जो कुछ भी है उसे पकड़ लेता है और दृश्य को फिर से प्रस्तुत करता है।

sync स्टोर में अपडेट करने के लिए है जब आपको स्थानीय परिवर्तन मिलते हैं और आप उन्हें सर्वर पर पोस्ट कर रहे हैं।

आपको स्टोर पर load विधि कॉल करने की आवश्यकता है।

+0

है यही कारण है कि मैं कोड का एक उदाहरण के लिए पूछ रहा था हो सकता है, आपको सिंक के बिना स्टोर को फिर से बनाना, या इसे पूरी तरह से खाली करना होगा, या बस इसे फिर से बनाएं :) – Sangoku

+0

नहीं, आपको केवल एक लोड ट्रिगर करना है। यह सर्वर से अनुरोध करता है, जब यह वापस आता है, तो यह उस घटना को आग लगा देगा जो सूची सुनती है और यह स्वयं को ताज़ा कर देगी। –

0

आप दुकान हर बार

var sL = Ext.getStore('AccountsTransfersTo') 
sL.load(); 
sL.scroller.scrollTo({x:0,y:0}); 

लोड कर सकते हैं या आप स्पष्ट डेटा प्रपत्र की दुकान करने की कोशिश और इसे फिर से फिर से लोड

var sL = Ext.getStore('AccountsTransfersTo') 
sL.removeAll(); 
sL.load(); 
sL.scroller.scrollTo({x:0,y:0}); 
+0

याद रखें कि मैं सेन्चा 1.1.1 का उपयोग कर रहा हूं - सूचियों के लिए कोई 'removeAll() 'या' load() 'विधि नहीं है। – ahren

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