我有下一个脚本:
var Game = Backbone.Model.extend({});
var GamesCollection = Backbone.Collection.extend({
model: Game
});
var games = new GamesCollection();
var portal = new Game({name: 'Tetris', year: '2017'});
games.add(portal);
console.log(games.get(0));
为什么“games.get(0)”返回'undefined'? 可能是我没有以正确的方式使用get方法吗?
答案 0 :(得分:8)
简短而甜蜜,你需要:
games.at(0)
.get
用于属性。
答案 1 :(得分:5)
模型上的AFAICT get()
用于属性,但在您的情况下,您正在处理集合,这意味着get()
是:
“从ID指定的集合中获取模型。”
E.g。
collection.get(1); // Get model with id = 1 from collection
因为你在制作新的俄罗斯方块游戏时没有提供id,所以Backbone会自己生成一个,这可能不是“0”。
但是在你的情况下at(index)
似乎是你所寻找的那个,我的回答只是为了澄清事情。
E.g。
collection.at(0); // Get model at collection index 0