2012-10-14 13 views
7

को सही ढंग से कैसे व्यवस्थित करें I'm सोच रहा हूं कि कैसे नॉकआउटजेएस एप्लिकेशन को सही तरीके से व्यवस्थित करना है।एक नॉकआउटजेएस एप्लिकेशन

  • आधिकारिक दस्तावेज लगभग हमेशा सिर्फ एक ही ViewModel का उपयोग करता है!

केवल कुछ कार्यान्वित कार्यों के बाद मेरा कोड बहुत भ्रमित हो गया और ऑब्जेक्ट उन्मुख पृष्ठभूमि से आ रहा है, मैं इस तरह की वास्तुकला के लिए बहुत एलर्जी हूं। तो एक बेहतर समाधान होना चाहिए।

जावास्क्रिप्ट के साथ बहुत अनुभवी नहीं होने के कारण मैं स्टैक ओवरफ्लो खोज रहा था और those three options पाया। तो मैं पहले दो विकल्पों की कोशिश की और मैं उनके साथ खुश नहीं हूँ:

  • होने कई ViewModelshere की तरह।

मुझे यह तय करना बहुत मुश्किल लगता है कि DOM-element क्या ViewModel प्राप्त करता है। इसके अलावा डोम-एलिमेंट के बाहर से कई फ़ंक्शन भी बुलाए गए थे। हो सकता है कि मैंने इस तरह के आर्किटेक्चर के साथ बहुत कम व्यू मॉडेल का इस्तेमाल किया लेकिन व्यूमोडल्स के बीच संचार करना अलग प्रतीत होता था और किसी भी तरह से मुझे उम्मीद नहीं करनी चाहिए। तो यह ठीक से कैसे करें?

  • उप विचारों होने और (those three से दूसरा विकल्प) बंधन के साथ उपयोग।

यह वास्तुकला के अपने पसंदीदा प्रकार था, क्योंकि आप दस्तावेज़ चौड़ा एक दृश्य मॉडल से बाहर बाइंडिंग हो सकता है लेकिन आप यह भी उप-टुकड़ों में अपने कोड की संरचना और उन्हें भी आप से आबद्ध का उपयोग करके चाहते करने के लिए बाध्य कर सकते हैं। हालांकि इस विकल्प को कार्यों के बजाय ऑब्जेक्ट अक्षर की आवश्यकता होती है, जो इस answer में वर्णित निम्न से कम हैं।

मैंने विधि तीन की कोशिश नहीं की है क्योंकि यह थोड़ा अधिक लगता है और ऑब्जेक्ट अक्षर का भी उपयोग करता है।

तो क्या मेरे कोड को ढूढ़ने के लिए कोई तरीका है और ऑब्जेक्ट अक्षर का उपयोग किये बिना पूर्ण नियंत्रण भी है?

मुझे आशा है कि यह बहुत भ्रामक :-P

उत्तर

3

विकल्प है कि आप उल्लेख किया है, आप वस्तु शाब्दिक उपयोग करने के लिए की जरूरत नहीं है के किसी भी के लिए नहीं था। नमूने ने कोड को सरल बनाने के लिए उन्हें इस्तेमाल किया। आप व्यक्तिगत दृश्य मॉडल को किसी भी तरह से फिट करने के लिए चुन सकते हैं।

उदाहरण के लिए # 3 में, आप एक कन्स्ट्रक्टर फ़ंक्शन का उपयोग कर सकते हैं जैसे: http://jsfiddle.net/rniemeyer/PctJz/149/। बेशक, वास्तविक डेटा स्थिर होने की बजाय कार्य में पारित किया जाएगा। # 2 के साथ ही, आप इसे "व्यू" ऑब्जेक्ट में लपेट लेंगे।

+0

+1 एक ही उदाहरण के साथ ऑब्जेक्ट शाब्दिक और कार्यात्मक तरीके दोनों को दिखाने के लिए +1, यह देखना आसान बनाता है कि वे अलग कैसे हैं [और महसूस करें कि वे बहुत अलग नहीं हैं :)] – jamiebarrow

+0

शानदार उदाहरण, धन्यवाद! मुझे इसे चलाने के लिए पहेली को अपडेट करने की आवश्यकता थी - शायद नॉकआउट पुराना था? http://jsfiddle.net/memeLab/cy7u9/1/ – ptim

+0

सुपर सहायक, धन्यवाद .. मैं लोड पर डिफ़ॉल्ट दृश्य कैसे सेट कर सकता हूं? http://stackoverflow.com/questions/23946248/ko-js-howto-set-default-view-when-using-view-constructor – ptim

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