javascript - ExtJS 4.2 DatePicker Multiselect catch event in controller -
मैं एक ExtJS 4.2 में MVC < Em> वास्तुकला विचार यह है कि घटक उपयोगकर्ता को एक समय में एक से अधिक दिनांक इनपुट / चयन करने की अनुमति देता है, हालांकि मुझे कुछ समस्याएं आ रही हैं:
- मेरा
चयनित डेटा
चर एक वस्तु है और मैं इसे कैसे तारीखों की सूची वापस करने के लिए नहीं करता। - जब आप एक नई विंडो खोलते हैं तो पिकर पिछली बार जब विंडो खुली थी, मैंने सोचा कि जब आप
बंद
एक विंडो मेंExt
, घटक नष्ट हो गए हैं?
मेरे पोस्ट में पेस्ट करने के लिए बहुत ज्यादा कोड है लेकिन मैंने एक को बनाया है। मैंने एक क्लिक किया था, जहां पर क्लिक किया था, मैं चयनित तिथियां प्राप्त करना चाहता हूं - क्या कोई कृपया ध्यान दे सकता है?
परिभाषित
ext में एक वर्ग प्रोटोटाइप श्रृंखला में मौजूद गुणों को आप कॉन्फ़िगरेशन में निर्दिष्ट करते हैं, नहीं वस्तु उदाहरण स्वयं जब तक कोई नया ऑब्जेक्ट selectedDates
को निर्दिष्ट नहीं किया जाता है तब घटक के कन्स्ट्रक्टर को कहा जाता है, तब आप एक ऑब्जेक्ट के उसी संदर्भ को संशोधित कर रहे हैं जब आप बंद
एक विंडो वस्तु है नष्ट हो जाती है लेकिन प्रोटोटाइप / वर्ग परिभाषा अभी भी मौजूद है। यदि आप मिश्रित प्रकारों का उपयोग करना चाहते हैं "डिफ़ॉल्ट" मानों को आप ऑब्जेक्ट के कंस्ट्रक्टर
विधि में इन्हें हल करना चाहिए। उदाहरण के लिए:
Ext.define ('MyClass', {विस्तार: 'ExtComponent', // ... चयनित दिनांक: रिक्त, कन्स्ट्रक्टर : फ़ंक्शन (आर्ग्स) {आर्ग्स = आर्ग्स || {}; एक्स्ट। एप्ली इफ (आर्ग्स, {चयनित दिनांक: {}}); यह कॉलपरेंट ([आर्ग्स]);}});
अपने selectedDates
प्राप्त करना आसान हिस्सा है, यह आपके ऑब्जेक्ट पर फिर से चलने का एक मामला है और एक सरणी के लिए मान जोड़ रहा है - इसके अतिरिक्त आपके पिकर घटक पर केवल एक चीज़ जो आपको याद आ रही है वह एक itemId
है ताकि आप इसे आसानी से प्राप्त कर सकें, उदाहरण के लिए:
Ext.define ('HighlightableDatePicker', {// ... getSelectedDates: फ़ंक्शन () {var dates = []; Ext.iterate (यह.चयनित दिनांक, फ़ंक्शन (कुंजी, वैल) {dates.push (val) ;}); Dates.sort (); वापसी की तारीख;}});
// Ext.Window आइटम कॉन्फ़िग ... {xtype: 'हाइलाइट', आइटम आईडी: 'datePicker'}, {xtype : 'बटन', पाठ: 'चयनित तिथियां प्राप्त करें', हैंडलर: फ़ंक्शन () {var picker = this.up ('window')। डाउन ('# datePicker'); कंसोल.लाग (पिकर.गेट सेलेक्टेडडेट्स) ()); }}
नोट: आपके बेला में कोई MVC नहीं है एक ही सिद्धांत लागू होता है - आपके पास पहले से ही एक हैंडसेट चेंजेड
विधि है, जहां आप एक कस्टम इवेंट आग लगा सकते हैं, उदाहरण के लिए:
handle selecteangChanged : फ़ंक्शन (cmp, date) {// मौजूदा तर्क के बाद ... this.fireEvent ('dateselection', this.getSelectedDates ()); }
अब पिकर घटक में itemId
है, तो आपका नियंत्रक घटना के लिए सुनने में सक्षम होगा।
Comments
Post a Comment