在我的backbone.marionette应用程序中,我试图设置一个模型属性' rank'作为它的循环索引。这是我的收藏代码:
AngryCats = Backbone.Collection.extend({
model:AngryCat,
initialize: function(cats){
var rank = 1;
_.each(cats, function(cat){
cat.set('rank', rank);
rank++;
})
}
});
但我收到的错误是:
TypeError: cat.set is not a function
cat.set('rank', rank);
任何人都告诉我这里有什么问题? (请查看小提琴链接以获取完整编码)
答案 0 :(得分:1)
您正在传递javascript对象数组。但set
仅在Backbone.Model
实例中可用。只有在初始化之后,每个对象都转换为Backbone.Model
对象。
你必须这样做
var rank = 1;
_.each(cats, function(cat){
cat.rank = rank;
rank++;
})