आप अपने संग्रह के लिए comparator
विधि प्रदान करके जो भी चाहते हैं उसे प्राप्त कर सकते हैं।
उदाहरण:
ModelCollection = Backbone.Collection.extend({
comparator: function(a, b) {
if (a.get("name") > b.get("name")) return 1;
if (a.get("name") < b.get("name")) return -1;
if (a.get("name") === b.get("name")) return 0;
},
initialize: function() {
this.on('change:name', function() { this.sort() }, this);
}
});
comparator
इस उदाहरण में अपने संग्रह का कारण होगा अंदर मॉडल की name
विशेषता के आधार पर आरोही क्रम में सॉर्ट किया जाना है।
ध्यान दें कि आपके संग्रह को models
में से किसी एक के गुण (ओं) को बदलते समय स्वचालित रूप से सॉर्ट नहीं किया जाएगा। डिफ़ॉल्ट रूप से, सॉर्टिंग केवल तभी होता है जब नए मॉडल बनाते हैं और उन्हें संग्रह में जोड़ते हैं; लेकिन comparator
collection.sort
विधि द्वारा उपयोग किया जाएगा।
उपरोक्त कोड एक ईवेंट श्रोता सेट करके इसका लाभ उठाता है जो किसी भी change
एस पर name
पर models
के गुणों को फिर से संग्रहीत करता है।
CollectionView = Backbone.View.extend({
initialize: function() {
this.collection = new ModelCollection();
this.collection.on('all', function() { this.render() }, this);
},
render: function() {
this.$el.html(this.collection.toJSON());
}
});
यह :)
है कि:
तस्वीर को पूरा करने के लिए, हम यकीन है कि यह किसी भी परिवर्तन पर फिर से renders बनाने के लिए View
संग्रह के साथ जुड़े में एक उपयुक्त घटना श्रोता की स्थापना
Backbone documentation से प्रासंगिक अंश:
डिफ़ॉल्ट रूप से कोई संग्रह के लिए comparator
। यदि आप comparator
को परिभाषित करते हैं, तो इसका उपयोग सॉर्ट किए गए क्रम में संग्रह को बनाए रखने के लिए किया जाएगा। इसका मतलब है कि मॉडल जोड़े जाने के बाद, उन्हें collection.models
में सही इंडेक्स में डाला जाता है। एक तुलनित्र को sortBy
(एक फ़ंक्शन पास करें जो एकल तर्क लेता है) के रूप में परिभाषित किया जा सकता है, sort
(दो तर्कों की अपेक्षा करने वाले एक तुलनित्र फ़ंक्शन को पास करें), या स्ट्रिंग के रूप में इंगित करने वाली स्ट्रिंग के रूप में परिभाषित किया जा सकता है। [...]comparator
के साथ संग्रह स्वचालित रूप से फिर से सॉर्ट नहीं होंगे यदि आप बाद में मॉडल विशेषताओं को बदलते हैं, तो आप ऑर्डर को प्रभावित करने वाले मॉडल विशेषताओं को बदलने के बाद sort
पर कॉल करना चाहेंगे।