Javascript 如何从集合中获取模型
我有下一个脚本:Javascript 如何从集合中获取模型,javascript,backbone.js,Javascript,Backbone.js,我有下一个脚本: 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.g
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方法不正确吗?又短又甜,您需要:
games.at(0)
.get
用于属性。模型上的AFAICTget()
用于属性,但在您的情况下,您处理的是一个集合,这意味着get()
是:
从集合中获取由id指定的模型
例如
因为您在制作新的俄罗斯方块游戏时没有提供id,主干网将自行生成一个id,该id可能不是“0”
然而,在你的情况下,at(index)
似乎就是你要找的,我的答案只是想澄清一下
例如
这是最准确的答案。另一个是,忽略了非常重要的一点,即集合还有一个
.get(id)
函数。这是一个很好的答案,但我不知道如何在返回的模型上调用方法。我假设我可以做如下操作:collection.at(0.methodName()代码>但它是未定义的。知道我做错了什么吗?弄明白了。它实际上工作正常,方法本身没有返回任何东西,所以当我记录它时,我会得到“未定义”,这意味着它没有找到方法。它只是没有从这个方法中得到任何回报。
collection.get(1); // Get model with id = 1 from collection
collection.at(0); // Get model at collection index 0