Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何从集合中获取模型_Javascript_Backbone.js - Fatal编程技术网

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
用于属性。

模型上的AFAICT
get()
用于属性,但在您的情况下,您处理的是一个集合,这意味着
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