Backbone.Collection.fetch():
fetch: function(options) {
options = options ? _.clone(options) : {};
if (options.parse === void 0) options.parse = true;
var success = options.success;
options.success = function(collection, resp, options) {
var method = options.update ? 'update' : 'reset';
collection[method](resp, options);
if (success) success(collection, resp, options);
};
return this.sync('read', this, options);
},
तो क्या यहां, है अपने समारोह में पारित var succees
को सौंपा गया है।
collection[method](resp, options);
कहा जाता है और आपके मामले में 'reset'
है।
collection.reset
को अपने सभी मॉडलों को जोड़ना और रास्ते में सभी घटनाओं को आग लगाना है। मुझे नहीं पता कि क्या हो रहा है लेकिन यह collection.reset
, collection.add
, model.add
, आदि के माध्यम से जाता है ... मैंने इसका पालन नहीं किया।
मुझे यकीन नहीं है कि समस्या वास्तव में क्या है, मुझे इसके बारे में खेद है। मुझे उम्मीद है कि कम से कम आप कुछ चीजों को आजमाने में मदद कर सकते हैं ताकि हम इसे समझ सकें। लाइन if (success) success(collection, resp, options)
आपके succes फ़ंक्शन पर कॉल है।
success: function(collection, resp, options) {
console.log(collection); // this might do the trick.
// if not, you could try the following
collection.on("reset", function(c, options) {
console.log(c); // see what that gives ya.
});
}
एक और बात है, मैं स्रोत में कहीं भी नहीं मिल रहा या डॉक्स जहां collection.fetch सकता है: क्या आप करने का प्रयास हो सकता है हो रही अपनी सफलता कॉलबैक वापस पारित कर दिया तर्क स्वीकार करते हैं और उनमें से कुछ सांत्वना बाहर करना है एक ऐड विकल्प लेता है। अगर मुझे यह याद आया, तो कृपया मुझे बताएं कि मैं इसे देखना चाहता हूं।
शुभकामनाएं, मुझे बताएं कि आपको क्या मिल रहा है। यह डीबगर के माध्यम से एक कदम के साथ पीछे पीछे लायक हो सकता है।
शित, यह मुझे भी मारता है कि कंसोल ने मुझे संग्रह वस्तुओं के सबसे अद्यतित संस्करण को दिखाया है जब यह नहीं होना चाहिए। के साथ तुलना करें
http://backbonejs.org/#Collection-fetch
: कोड है कि इस पर निर्भर करता है को तोड़ने के
var len = $this.Messages.length;
console.log(len);
//...
// or in the success callback
var len = collection.length;
console.log(len);
क्या आपने सत्यापित किया है कि डेटा वास्तव में कॉल में वापस आ रहा है? – kinakuta
क्या आप केवल 'सफलता' कॉलबैक के भीतर '$ this.Messages' में नए जोड़े गए मॉडल ढूंढ रहे हैं? यदि हां, तो क्या आप वाकई सुनिश्चित हैं कि, जब 'सफलता' कहा जाता है, तो संग्रह ने पहले से ही प्रतिक्रिया को पार कर लिया होगा और उन्हें संग्रह में जोड़ा होगा? –