2012-12-19 15 views
6

मैं इस तरह एक बहुत बुनियादी सेटअप है:बैकबोन collection.add काम नहीं कर रहा

var MusicModel = Backbone.Model.extend({}); 
var PlaylistCollection = Backbone.Collection.extend({ 
    model: MusicModel, 
    events: {'add':'add'}, 
    add: function(mdl){ 
     //This is working perfectly fine even output of model 
     console.log(mdl); 
    } 
}); 

var playlistCollection = new PlaylistCollection(); 
playlistCollection.add(new Music(data)); 

मॉडल वास्तव में संग्रह में नहीं जोड़ा जाता। अगर मैं क्रोम कंसोल का उपयोग करने की कोशिश करता हूं और playlistCollection.length दर्ज करता हूं तो यह आउटपुट 0 और playlistCollection.models आउटपुट [] होगा।

कोई विचार क्या मैं गलत कर रहा हूं?

उत्तर

7

बैकबोन में संग्रह पहले से ही add method है। अपना खुद का लिखकर, आप मूल विधि को मुखौटा करते हैं और सामान्य व्यवहार को रोकते हैं: संग्रह में मॉडल डालना। कुछ और करने के लिए अपने विधि का नाम बदलें या अपनी समस्या को हल करने के लिए आधार विधि कॉल:

var PlaylistCollection = Backbone.Collection.extend({ 
    model: MusicModel, 

    add: function(model, opts){ 
     Backbone.Collection.prototype.add.call(this, model, opts); 
     console.log(model); 
    } 
}); 

http://jsfiddle.net/nikoshr/WPrTu/

+0

मैं नहीं जानता कि मैं कुछ इस तरह कैसे याद कर सकते हैं। पांच मिनट में स्वीकार करेंगे। – ewooycom

+1

@ user1188570 उन मामलों में, मैं उत्साह को दोषी ठहराता हूं :) – nikoshr

संबंधित मुद्दे