शायद आप Collection.fetch()
का उपयोग नहीं करना चाहते हैं, क्योंकि आपको क्लाइंट-साइड कैशिंग का लाभ नहीं मिलेगा - यह उन आइटम्स को छोड़ देगा जिन्हें आपने पहले ही सर्वर से लोड किया है और संग्रह को रीसेट कर दिया है। आपको अधिक आइटम पुनर्प्राप्त करने के लिए शायद कस्टम फ़ंक्शन के साथ Backbone.Collection
को विस्तारित करने की आवश्यकता होगी। मैं हाल ही में एक परियोजना में निम्न कोड का प्रयोग किया:
Backbone.Collection.extend({
// fetch list without overwriting existing objects (copied from fetch())
fetchNew: function(options) {
options = options || {};
var collection = this,
success = options.success;
options.success = function(resp, status, xhr) {
_(collection.parse(resp, xhr)).each(function(item) {
if (!collection.get(item.id)) {
collection.add(item, {silent:true});
}
});
if (!options.silent) collection.trigger('reset', collection, options);
if (success) success(collection, resp);
};
return (this.sync || Backbone.sync).call(this, 'read', this, options);
}
});
यह ज्यादातर डिफ़ॉल्ट fetch()
कोड से कॉपी किया है, लेकिन इसके बजाय मौजूदा आइटम छोड़ने का यह नए लोगों को जोड़ने जाएगा। ऑब्जेक्ट का उपयोग करके आप options
ऑब्जेक्ट का उपयोग करके कुछ सर्वर-साइड को कार्यान्वित करना चाहते हैं, जो आप जो आइटम लोड करना चाहते हैं, उसके पैरामीटर में पास करने का सुझाव देते हैं, शायद या तो पृष्ठ संख्या (यदि आप सर्वर पर पेज आकार को नियंत्रित करना चाहते हैं) या एक स्टार्ट-स्टॉप जोड़ी (यदि आप इसे क्लाइंट पर नियंत्रित करना चाहते हैं)।
** 1 ** ठीक है सही तो यह डेटा आपके रीढ़ संग्रह में पृष्ठ पर वर्तमान में है कि करने के लिए केवल आवश्यक है? ** 2 ** ** बैकएंड से मॉडल लाने के लिए मुझे पहले इसे प्रासंगिक आईडी का उपयोग करके बनाना होगा और फिर कॉल को कॉल करना होगा। क्या यह उस संग्रह पर एक "ऐड" ईवेंट ट्रिगर करेगा? या जहां तक बैकबोन का सवाल है कि मॉडल कोई संग्रह नहीं है? – wilsonpage
इसके अलावा आप "पृष्ठ तर्क" क्या बोलते हैं? क्या यह कार्य 'यूआरएल' विशेषता का निर्माण करता है? जैसे। 'url: function() {वापसी x +"/"+ y +"/"+ z;' – wilsonpage
1. दाएं। 2. नहीं, आपको इसे प्रासंगिक संग्रह में जोड़ना होगा। 3. आप यूआरएल विशेषताओं का उपयोग कर सकते हैं, लेकिन मुझे लगता है कि रीढ़ की हड्डी के नवीनतम संस्करणों में आप एजेक्स कॉल को फ़ेच, रीफ्रेश इत्यादि के साथ विकल्प भेज सकते हैं ({डेटा: "यहां आपकी क्वेरी"}) – Julien