我有一个像这样的非常基本的设置:
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));
该模型实际上并未添加到集合中。如果我尝试使用 Chrome 控制台并输入 playlistCollection.length
,它将输出 0,而 playlistCollection.models
将输出 []
。
知道我做错了什么吗?
最佳答案
Backbone 中的集合已经有一个 add method .通过编写自己的方法,您可以屏蔽基本方法并防止正常行为:将模型插入集合中。将您的方法重命名为其他名称或调用基本方法来解决您的问题:
var PlaylistCollection = Backbone.Collection.extend({
model: MusicModel,
add: function(model, opts){
Backbone.Collection.prototype.add.call(this, model, opts);
console.log(model);
}
});
关于javascript - 主干 collection.add 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13949882/