这些天我一直在努力学习 backbone.js。我拥有的是一个模型和一个集合。该模型中定义了一些我想在集合中获取的默认属性。这是我的代码:
var model = Backbone.Model.extend({
defaults : {
done : true
}
});
var collection = Backbone.Collection.extend({
model : model,
pickMe : function () {
log(this.model.get('done')); //return undefined
}
});
var col = new collection();
col.pickMe();
如何从集合中调用模型中定义的方法?我在这里做错了吗?
最佳答案
Backbone 的基本设置是这样的:
您的模型是集合的一部分。所以在你的设置中你有一个模型构造函数 model
和集合构造函数 collection
,但是你的集合中没有模型,如果你有任何模型,它们将是一个数组,所以你的代码应该是这样的
var model = Backbone.Model.extend({
defaults : {
done : true
}
});
var collection = Backbone.Collection.extend({
model : model,
pickMe : function () {
for ( i = 0; i < this.models.length; i++ ) {
log(this.models[i].get('done')); // this prints 'true'
}
}
});
// Here we are actually creating a new model for the collection
var col = new collection([{ name : 'jack' }]);
col.pickMe();
您可以在此处查看工作中的 jsFiddle:http://jsfiddle.net/S8tHk/1/
关于javascript - 如何从 backbone.js 中的集合调用模型方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10410167/