Backbone.js: बैकबोन कलेक्शन में मॉडल का इंडेक्स कैसे प्राप्त करें?


119

क्या संग्रह के भीतर एक मॉडल का सूचकांक खोजने का कोई तरीका है?

आइए एक दृश्य में कहें कि हमारे पास एक मॉडल है जिस पर हम काम कर रहे हैं, क्या यह मॉडल उस थूक के सूचकांक के बाहर हो सकता है जो वर्तमान में इसके अंदर है? मैं ऐसा करना चाहता हूं क्योंकि मैं मौजूदा लक्ष्य के ऊपर या नीचे मॉडल का उपयोग करना चाहता हूं।

दूसरे शब्दों में कुछ ऐसा है:

index = this.model.index
modelAbove = this.collection.at( index-1 )

मेरा डेटा एक नेस्टेड सेट है, इसलिए मैं सिर्फ "lft" या "rgt" कॉलम पर एक खोज कर सकता हूं, लेकिन मैं बैकबोन के पास यह जानकारी उपलब्ध होने पर पहिया को फिर से स्थापित नहीं करना चाहता था।

जवाबों:


201

हां, बैकबोन मॉडल और संग्रह पर कई अंडरस्कोर तरीकों की पहुंच प्रदान करता है, जिसमें indexOfसंग्रह पर एक विधि भी शामिल है। यह एक atविधि भी प्रदान करता है जैसे आपने दिखाया है।

var index = this.collection.indexOf(this.model);
var modelAbove = this.collection.at(index-1);

2
इसे साफ़ करने के लिए धन्यवाद! तुम्हें पता है, यह बहुत अच्छा होगा अगर .collectionसदस्य को स्पष्ट रूप से डॉक्स में सूचीबद्ध किया गया हो Model...
anदन १४'१३ बजे ५

4
मैं एक initializeकॉल के दौरान काम करने के लिए इसे प्राप्त नहीं कर सकता । किसी भी विचार मैं कैसे वह काम कर सकता है?
आकिल फर्नांडिस

यह मेरे लिए एक पाश के माध्यम से भी। 'indexOf' को कलेक्शन> अंडरस्कोर मेथड्स लेफ्ट हैंड मेन्यू में रखा गया है, इसलिए यह प्लेन लुक में नहीं है।
जेफपॉवर्स

@Jeffpowrs यह भी अजीब है, क्योंकि इंडेक्सऑफ़ प्रलेखन में indexOf एक सरणी फ़ंक्शन है, जबकि एक और सरणी फ़ंक्शन, findIndex, संग्रह के साथ काम नहीं करता है।
जोशुआ टेलर
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.