2013-05-25 9 views
6

संग्रह में ऑब्जेक्ट्स के क्रम को यादृच्छिक करने का प्रयास करते समय मुझे समस्याएं आ रही हैं।Backbone.js संग्रह में वस्तुओं को कैसे घुमाएं

यहाँ कोड है कि मैं करने की कोशिश की है या नहीं:

console.log(this.collection); 
shuffled = this.collection.shuffle(); 
console.log(shuffled); 

और यहाँ कंसोल आउटपुट (एक परीक्षण संग्रह का उपयोग करके 3 आइटम के साथ):

child {models: Array[3], length: 3, _byId: Object, url: "/myurl/myid", _listenerId: "l7"…} 
_byId: Object 
_events: Object 
_idAttr: "id" 
_listenerId: "l7" 
length: 3 
models: Array[3] 
__proto__: Surrogate 

[child, child, child] 
0: child 
1: child 
2: child 
length: 3 
__proto__: Array[0] 

आप देख सकते हैं, संग्रह है ठीक से shuffled नहीं जा रहा है, इसके बजाय यह एक नया उपयोग करने योग्य वस्तु बना रहा है जो अजीब बच्चों से भरा हुआ है।

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

किसी भी मदद की बहुत सराहना कर रहा है!

+0

यदि आप दृश्य को यादृच्छिक बनाना चाहते हैं, तो संग्रह में कोड क्यों डालें और न देखें? –

+0

कोड एक दृश्य में encapsulated है, मैं केवल उपरोक्त संबंधित भागों दिखा रहा था। संग्रह यादृच्छिक है, फिर दृश्य यादृच्छिक संग्रह के आधार पर अद्यतन किया गया है, और साथ ही साथ सहेजा गया है। – mgee245

उत्तर

8
console.log(this.collection); 
this.collection.reset(this.collection.shuffle(), {silent:true}); 
console.log(this.collection); 
+0

बिल्कुल सही! यह चाल है ... मैं अब .reset फ़ंक्शन पर एक नज़र डालेगा। बहुत धन्यवाद! – mgee245

+0

यह बहुत अच्छा है। यह _buffle के बैकबोन के कार्यान्वयन का डिफ़ॉल्ट व्यवहार होना चाहते हैं – SimplGy

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