Backbone.js: จะรับดัชนีของโมเดลใน Backbone Collection ได้อย่างไร


119

มีวิธีค้นหาดัชนีของโมเดลภายในคอลเลกชันหรือไม่?

สมมติว่าในมุมมองที่เรามีโมเดลที่เรากำลังทำอยู่โมเดลนั้นสามารถคายดัชนีของมันออกมาในคอลเลกชั่นที่อยู่ในปัจจุบันได้หรือไม่? ฉันต้องการทำเช่นนี้เพราะฉันต้องการเข้าถึงโมเดลที่สูงกว่าหรือต่ำกว่าเป้าหมายปัจจุบัน

กล่าวอีกนัยหนึ่งคือ:

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

ข้อมูลของฉันเป็นชุดที่ซ้อนกันฉันจึงสามารถค้นหาในคอลัมน์ "lft" หรือ "rgt" ได้ แต่ฉันไม่ต้องการสร้างวงล้อใหม่หาก Backbone มีข้อมูลนี้อยู่แล้ว

คำตอบ:


201

ใช่กระดูกสันหลังช่วยให้เข้าถึงเมธอด underscore.js จำนวนมากบนโมเดลและคอลเลคชันรวมถึงindexOfวิธีการในคอลเลกชัน นอกจากนี้ยังมีatวิธีการเช่นที่คุณแสดง

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

2
ขอขอบคุณที่แก้ไขปัญหานี้! คุณจะรู้ว่ามันจะดีมากถ้า.collectionสมาชิกมีรายชื่ออย่างชัดเจนในเอกสารสำหรับModel...
aaaidan

4
ฉันไม่สามารถใช้งานได้ในระหว่างการinitializeโทร มีความคิดอย่างไรที่ฉันจะทำงานนั้นได้
Aakil Fernandes

สิ่งนี้ผ่านฉันสำหรับการวนซ้ำด้วย 'indexOf' อยู่ใน Collections> Underscore Methods ในเมนูทางซ้ายมือจึงไม่ได้อยู่ในสายตา
Jeffpowrs

@Jeffpowrs ก็แปลกเช่นกันเพราะ indexOf ในเอกสารขีดล่างเป็นฟังก์ชันอาร์เรย์ในขณะที่ฟังก์ชันอาร์เรย์อื่น findIndex ไม่ทำงานกับคอลเลกชัน
Joshua Taylor
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.