2011-05-29 18 views
9

Sencha टच में [अपेक्षाकृत नई] MVC बिट्स का उपयोग करते समय मुझे लगता है कि मेरी प्रेषण कॉल के 90% की तरह कुछ लग:मुझे नियंत्रक कोड को सीधे कॉल करने के बजाय Ext.dispatch का उपयोग क्यों करना चाहिए?

Ext.dispatch({ 
    controller: "customers", 
    action: 'show', 
    record: record 
}); 

यह ठीक है, और मैं अलग नियंत्रक कोड के प्रवाह सौंपने चाहते, बल्कि घटनाओं की जटिल रास्तों से है, लेकिन जैसे कुछ कर रही पर किसी भी लाभ को देखने के लिए मैं अभी तक है:

controllers.customers.show({ 
    record: record 
}); 

कौन सा छोटा और क्लीनर है। मुझे लगता है कि मैं इसके लिए Ext.dispatch पैटर्न का पालन कर रहा हूं। मेरे ऐप को राज्य के लिए पुश/पॉप यूआरएल इतिहास से लाभ नहीं होता है, और यह एकमात्र कारण है जिसे मैं अब और अधिक जटिल दृष्टिकोण का उपयोग करने के लिए देख सकता हूं।

मुझे क्या याद आ रही है? कॉल नियंत्रकों को Ext.dispatch का उपयोग करने से मुझे क्या फायदा होगा?

उत्तर

9

यदि आप उन्हें किसी अन्य नियंत्रक पर रीडायरेक्ट करने की आवश्यकता है तो पहले सेडिस्चैच ईवेंट आसान है।

प्रेषण का उपयोग करने से मुझे पृष्ठ लोड पर एक बार में नियंत्रक कोड को आवश्यकतानुसार लोड करने की सुविधा मिलती है। मैंने अपने ऐप के स्टार्टअप समय को आधे रास्ते में काट दिया।

आपने कहा कि आपके ऐप को इसकी आवश्यकता नहीं है, लेकिन इतिहास स्थापित करने में सक्षम होने और पृष्ठों से सीधे लिंक करने के लिए अन्य उपयोगकर्ताओं के लिए मुख्य लाभ होगा।

तो मुझे लगता है कि यह सब ऐप पर निर्भर करता है कि इसका उपयोग करने के लिए यह समझ में आता है या नहीं।

+0

क्या आप इस बारे में विस्तार से बता सकते हैं कि आप नियंत्रक कोड जेआईटी कैसे लोड करते हैं, या इसके बारे में एक ट्यूटोरियल से लिंक करते हैं? –

+0

@ Tomasšejfar मैं Ext.util.Dispatcher प्रेषण फ़ंक्शन को एक क्लोजर वेरिएबल में सहेजता हूं, फिर मैं अपने कोड के साथ प्रेषण को प्रतिस्थापित करता हूं। नए फ़ंक्शन के अंदर मैं उन विकल्पों को देखता हूं जो प्रेषण को पास किए गए थे जिसमें नियंत्रक का नाम होना चाहिए। यदि Ext.ControllerManager.get उस नाम के साथ नियंत्रक देता है, तो मैं मूल प्रेषण फ़ंक्शन को कॉल करता हूं। अन्यथा मैं नियंत्रक (यानी "/ ऐप/नियंत्रक/उपयोगकर्ता") युक्त स्क्रिप्ट को गतिशील रूप से आवश्यक जेएस (किसी भी समान लाइब्रेरी) के साथ लोड करता है। जब स्क्रिप्ट लोड हो जाती है, तो मेरा नियंत्रक पंजीकृत होना चाहिए और मैं सामान्य रूप से प्रेषण को कॉल करता हूं। –

+0

बीटीडब्ल्यू यह 1.0 के लिए किया गया था। सेन्चा टच 2.0 मेरी विधि अप्रचलित कर सकता है। –

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