2011-12-20 13 views
16

मेरे पास एक संग्रह है जो प्रत्येक तिथि के लिए किसी दिए गए श्रेणी (एक रेल नियंत्रक के माध्यम से खिलाया जाता है) के भीतर एक मॉडल देता है।बैकबोन न्यूबी: संग्रह से पहला मॉडल कैसे प्राप्त करें?

संग्रह के लिए मेरे विचार में, मैं संग्रह से पहली तारीख के लिए महीने प्रदर्शित करना चाहता हूं ... मैं बस सोच रहा हूं कि इसे प्राप्त करने का सबसे शानदार तरीका क्या है?

ऐसा लगता है कि संग्रह के माध्यम से मॉडलों की सरणी तक पहुंचने के लिए सबसे सरल होगा, पहले को पकड़ें, और महीने के नाम को पुनर्प्राप्त करने के लिए उस मॉडल के भीतर आवश्यक विधि चलाएं। सीधे लगता है, लेकिन मैं यह नहीं समझ सकता कि संग्रह के भीतर से पहले मॉडल को कैसे दबाया जाए।

वैकल्पिक रूप से, मैं रेल से राउटर() तक कॉल के माध्यम से आवश्यक मूल्य पास कर सकता हूं, लेकिन यह थोड़ा बदसूरत लगता है।

अंत में, मैं एक मूल्य को पुनः प्राप्त करने के लिए एक पूरी तरह से नया संग्रह बस कर सकता हूं, लेकिन फिर से - अत्यधिक लगता है।

मुझे यह करने के बारे में कोई सुझाव कैसे चाहिए? मान लीजिए कि मॉडल डेटा को संग्रह में वापस लाने के लिए यह बहुत अधिक वर्जित नहीं है, मुझे लगता है कि मैं यह पूछ रहा हूं कि यह कैसे करें।

उत्तर

47

Backbone.js संग्रहों के पास Underscore.js विधियों तक पहुंच है।

MyCollection.first() संग्रह से पहला मॉडल वापस करना चाहिए।

+1

http://documentcloud.github.com/backbone/#Collection-Underscore-Methods और http: // documentcloud अधिक जानकारी के लिए .github.com/अंडरस्कोर /। – djlumley

+0

क्या होगा यदि आप अंडरस्कोर का उपयोग नहीं कर रहे हैं, लेकिन एक और टेम्पलेट इंजन (उदा। Handlebars.js)? क्या कोई मूल backbone.js विधि या पैटर्न है? – lucke84

+2

@ lucke84 - 'Underscore.js' एक कठिन निर्भरता है, इसलिए यदि आप एक और टेम्पलेटिंग इंजन (ईजेएस, ईसीओ, जेड इत्यादि) का उपयोग कर रहे हैं, तो भी आप 'अंडरस्कोर.जेएस' सहित होंगे और उपयोग करने में सक्षम होना चाहिए आपके विचारों में इसकी विधियां (बशर्ते वे जावास्क्रिप्ट का मूल्यांकन करने की अनुमति दें।) ऐसी स्थिति में जहां आप एक टेम्पलेट इंजन का उपयोग कर रहे हैं जो जावास्क्रिप्ट का मूल्यांकन करने की अनुमति नहीं देता है, यह दृश्य चर सेट करने का एक साधारण मामला होना चाहिए इससे पहले कि आप इसे विशिष्ट दृश्य प्रस्तुत करें। – djlumley

7
collection.at(0) //etc 

लेकिन आप अगर वहाँ जाँच करने के लिए है, तो कम से कम एक तत्व

if(collection.length){ 
    collection.at(0) //etc 
} 
संबंधित मुद्दे