मैंने हाल ही में Backbone.js
का उपयोग करना शुरू कर दिया है। मैं वास्तुकला, सुविधाओं के मामले में यह लगभग ठीक है कि मैं क्या जरूरत है ...बैकबोन.जेएस और इसकी एपीआई भ्रम
चाहते ... लेकिन मैं निम्न चेतावनियां पाया:
Collection
रों लिएget
कुछModel
रों के लिए की तुलना में अलग है। कोईset
नहीं है। विशेष रूप से गुणों का उपयोग किया जाना चाहिए। मुझे यह असंगत लगता है। कभी-कभी मॉडलों और संग्रहों को भ्रमित करना आसान होता है। क्या इस बात को दूर करने के लिए कुछ भी किया जा सकता है?Model.extend
के अंदर प्रारंभिक मानों को असाइन करना हमेशा काम नहीं करता है। उदाहरण के लिएurl
असाइन करना डिफ़ॉल्ट व्यवहार को ओवरराइड नहीं करेगा। यह केवलset()
विधि पर कॉल के माध्यम से प्राप्त किया जा सकता है। फिर से बहुत त्रुटि प्रवण।- मुझे अभी भी पता नहीं है कि
get
/set
initialize()
कॉल के अंदर उपयोग करना आवश्यक है या नहीं। - मुझे समझ में नहीं आता कि मैं को
initialize()
के अंदर क्यों नहीं बुला सकता और मुझे इस तरह से बाध्य होने के लिए विशिष्ट फ़ंक्शन नाम सूचीबद्ध करना होगा:_.bindAll(this, firstFunc, secondFunc, ...)
। यह बहुत शुष्क नहीं है।
मैं जानना चाहता हूं: उल्लिखित स्थितियों के बारे में सर्वोत्तम अभ्यास क्या हैं? फ्रेमवर्क को और अधिक सुसंगत बनाने के लिए आप क्या करते हैं - कोई बंदर पैचिंग? क्या मैं कुछ भी गलत कर रहा हूं/सम्मेलन के खिलाफ?
मैं किसी भी अच्छे असली दुनिया के उदाहरणों के लिए आभारी रहूंगा। मुझे यह मिला: http://documentcloud.github.com/backbone/docs/todos.html और http://liquidmedia.ca/blog/2011/01/backbone-js-part-1/ और वे किसी भी समस्या का समाधान नहीं करते हैं। वास्तव में वे केवल सरल विचारों और बिल्कुल सीमावर्ती मामलों को प्रस्तुत नहीं करते हैं, इसलिए कुछ भी जटिल हो सकता है।
संपादित करें:
ठीक है, और वहाँ एक और मौलिक लगता है कि मुझे समझ नहीं आता है: var SomeModel = Backbone.Model.extend({ myattribute: myvalue })
:
- मैंने कभी इस तरह विस्तार पर अतिरिक्त गुण दिखाने की अनुमति है?
- यदि ऐसा है, तो
new SomeModel().get("myattribute")
पर कॉल क्यों नहीं करते?
- यदि ऐसा है, तो
initialize()
के अंदर वास्तव में क्या है? क्या यह मॉडल वर्ग या मॉडल उदाहरण है?
संपादित करें (2):
खैर, मैं इस पाया: http://maccman.github.com/spine/। यह बैकबोन.जेएस 2.0 जैसा दिखता है, एक समान नाम भी साझा करता है :)। अभी तक इसका परीक्षण नहीं किया है, जो एक शो स्टॉपर का थोड़ा सा हो सकता है, क्योंकि लाइब्रेरी हाल ही में हाल ही में है। हालांकि चीजों के दस्तावेज़ों से यह बहुत ही प्रमोशनल लग रहा है। यह मुझे मिली अधिकांश समस्याओं से छुटकारा पाता है, यह एपीआई को सरल बनाता है, यह underscore.js
पर निर्भरता से छुटकारा पाता है जो पुस्तकालय के लिए एक अच्छी बात है। मैं यहां अपने और निष्कर्ष पोस्ट करूंगा।
अच्छा सवाल, मुझे भी बैकबोन थोड़ा अजीब मिला। आपको अपने निष्कर्षों को अपने प्रश्न के उत्तर के रूप में जोड़ना चाहिए। – brianpeiris
@brianpeiris I जैसे ही मैं स्थापित करता हूं कि यह वास्तव में प्रयोग योग्य है। अब तक सब ठीक है. रीढ़ की हड्डी वास्तव में अच्छी तरह से सोचा प्रतीत होता है। – julkiewicz