2012-01-07 6 views
10

आप व्यू-मॉडल कक्षाओं को कैसे व्यवस्थित करते हैं? अलग वर्ग या एक विशाल एक (और विशालकाय को मॉड्यूलर करने के लिए कैसे)? 'पेज' के बीच कैसे स्विच करें (पाठ्यक्रम के AJAX के साथ लोड डेटा के साथ)? पेज लोड के बाद बैकबोनजेस के लिए टेम्पलेट कैसे लोड करें? उदाहरण और ट्यूटोरियल की सराहना की जाएगी जब तक वे अपनी साइट पर अधिक उन्नत हों।knockout.js के साथ एक पृष्ठ ऐप कैसे बनाएं?

+1

यहां कुछ उत्तरों के लिए तत्पर हैं। – Domenic

उत्तर

10

वाह, बहुत से प्रश्न सभी एक में घुमाए गए। मैं उन्हें यहां हिट करने की कोशिश करूंगा, लेकिन एक अस्वीकरण कि मैं प्लॉकसाइट ऑन नॉकआउट के लिए एक संपूर्ण पाठ्यक्रम लिख रहा हूं ... इसलिए मैं गहराई में नहीं जा सकता, आपको एक टिप्पणी बॉक्स की आवश्यकता है :)

1) कैसे क्या आप मॉडल-व्यू कक्षाएं व्यवस्थित करते हैं?

मुझे लगता है कि आप व्यू-मॉडल कक्षाओं का मतलब है। मैं एक ऐसे दृश्य मॉडल को बनाने की अनुशंसा करता हूं जिसमें पृष्ठ की सभी आवश्यकताओं और विधियों को शामिल किया गया हो। दृश्य मॉडल को एक संलग्नक में रखें और उस सभी जावास्क्रिप्ट को अपनी फ़ाइल में रखें। उदाहरण के लिए, यदि आपके पास अपनी संरचना के लिए पेज customers.html है, तो आपके पास अपने व्यू मॉडल के साथ ग्राहक.जेएस हो सकते हैं।

2) अलग वर्ग या एक विशाल एक (और विशालकाय को कैसे मॉड्यूलर करना है)?

प्रत्येक दृश्य मॉडल अपनी फ़ाइल में है। आम तौर पर 1 दृश्य मॉडल प्रति जेएस फ़ाइल (लेकिन आप निश्चित रूप से एक ही फाइल में अंतःसंबंधित लोगों को डाल सकते हैं)। इसके अलावा, आमतौर पर 1 व्यू मॉडल प्रति दृश्य (लेकिन फिर से, आप कुछ मामलों में इससे आगे जा सकते हैं)।

मॉडल के लिए आप उन्हें एक ही मॉडल फ़ाइल में बना सकते हैं यदि आप चाहें, या उन्हें अलग फाइलों में डाल दें। छोटे ऐप्स के लिए मुझे 1 models.js फ़ाइलें पसंद हैं क्योंकि अधिकांश मॉडल बहुत सीधे आगे, छोटे होते हैं, और इसमें सरल गुण होते हैं (हालांकि अवलोकन योग्य)। लेकिन यहां, यह वास्तव में पसंद का मामला है।

3) पृष्ठों के बीच कैसे स्विच करें?

तंत्र नॉकआउट के लिए विशिष्ट नहीं है, इसलिए आप लिंक या यहां तक ​​कि कस्टम नियंत्रण (मेनू, टैब इत्यादि) का उपयोग कर सकते हैं। तुम्हारा कॉल। एक बार जब आप किसी दूसरे पृष्ठ पर नेविगेट करने का निर्णय लेते हैं, तो मुझे लगता है कि आपको संदर्भ के लिए 2 के बीच डेटा पास करने की आवश्यकता है, ऐसा करने का एक तरीका आईडी के साथ क्वेरीस्ट्रिंग में है, दूसरा तरीका स्थानीय संग्रहण है (बड़ी वस्तुओं के लिए जिन्हें आपको स्टोर करने की आवश्यकता है ग्राहक), या अन्य विकल्प भी हैं। फिर, यह वास्तव में इस बात पर निर्भर करता है कि आपको पृष्ठों के बीच क्या गुजरना है। कई बार मैं पृष्ठों को स्वयं पर्याप्त बनाने के लिए डिज़ाइन करता हूं इसलिए मुझे उनके बीच बहुत कुछ पारित करने की आवश्यकता नहीं है। मुझे जो पास करने की ज़रूरत है, उसके लिए मैं जितना छोटा कर सकता हूं उसे भेजने की कोशिश करता हूं और चाबियों के आधार पर डेटा देखता हूं (AJAX कॉल या स्थानीय संग्रहण में ... जहां भी डेटा रहता है)।

मुझे आशा है कि इससे थोड़ा सा मदद मिलेगी।

अद्यतन: Here is the link I mentioned to my Knockout.js course on Pluralsight

+0

प्रतिक्रिया के लिए धन्यवाद! बस स्पष्ट करने के लिए, आपको लगता है कि प्रत्येक 'पेज' के लिए ko.apply बाइंडिंग के साथ एक दृश्य-मॉडल होना बेहतर है (कोट्स में यह एक पृष्ठ ऐप है, लेकिन आप जानते हैं, प्रत्येक अद्वितीय दृश्य)? – sdfadfaasd

+1

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

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