Javascript Backbone.js为什么我必须使用下划线(u.each)来定位模型?

Javascript Backbone.js为什么我必须使用下划线(u.each)来定位模型?,javascript,backbone.js,underscore.js,Javascript,Backbone.js,Underscore.js,因此,每当我想从我的收藏中选择一个模型时,我总是使用主干网自己的where方法 var homeTeam = this.collection.where({teamName: this.currentTeamName('home')}); 我有自己的方法来抓取当前团队,我传递“home”或“away”作为参数,它知道要抓取哪个模型,这一切都很好,很好,另一个例子就是传递一个字符串,如下所示 // This is practically the same as the above. var ho

因此,每当我想从我的收藏中选择一个模型时,我总是使用主干网自己的
where
方法

var homeTeam = this.collection.where({teamName: this.currentTeamName('home')});
我有自己的方法来抓取当前团队,我传递“home”或“away”作为参数,它知道要抓取哪个模型,这一切都很好,很好,另一个例子就是传递一个字符串,如下所示

// This is practically the same as the above.
var homeTeam = this.collection.where({teamName: 'bulls'});
因此,如果我记录该变量
console.log(homeTeam)
,控制台将显示该模型,就像它显示任何模型一样

控制台显示我可以访问模型可以使用的常规方法,但是如果我调用其中一个方法,就会出现错误,例如
homeTeam.save({someAttr:'juicy'})

因此,我只使用下划线的
每个
方法,如下所示,它是有效的

_.each(homeTeam, function(model) { model.save({someAttr: 'juicy'}); }, this);
我这样做已经有一段时间了,但我很想知道为什么我必须这样做,当记录
homeTeam
时,它会像这样通过模型

_.each(homeTeam, function(model) { console.log(model) }, this); 

它们在控制台中的显示完全相同。

因为
其中
返回模型的数组。数组不是模型对象。这是一个数组


请参阅。

,因为
其中
返回模型的数组。数组不是模型对象。这是一个数组


请参阅。

,因为
其中
返回模型的数组。数组不是模型对象。这是一个数组


请参阅。

,因为
其中
返回模型的数组。数组不是模型对象。这是一个数组


看。

啊,我想我看到了问题所在

。其中返回一个数组;即使它是一个模型数组,Javascript控制台也会将条目作为模型进行评估,以便您可以看到主干提供的方法

你需要做的是使用.findWhere

这将返回第一个匹配模型,作为正确类型的对象

或者,您可以尝试(只是为了证明)“homeTeam[0]。保存(…)


澄清一下:你犯了错误,因为主队不是你想象的那样;欢迎使用Javascript

啊,我想我看到了问题所在

。其中返回一个数组;即使它是一个模型数组,Javascript控制台也会将条目作为模型进行评估,以便您可以看到主干提供的方法

你需要做的是使用.findWhere

这将返回第一个匹配模型,作为正确类型的对象

或者,您可以尝试(只是为了证明)“homeTeam[0]。保存(…)


澄清一下:你犯了错误,因为主队不是你想象的那样;欢迎使用Javascript

啊,我想我看到了问题所在

。其中返回一个数组;即使它是一个模型数组,Javascript控制台也会将条目作为模型进行评估,以便您可以看到主干提供的方法

你需要做的是使用.findWhere

这将返回第一个匹配模型,作为正确类型的对象

或者,您可以尝试(只是为了证明)“homeTeam[0]。保存(…)


澄清一下:你犯了错误,因为主队不是你想象的那样;欢迎使用Javascript

啊,我想我看到了问题所在

。其中返回一个数组;即使它是一个模型数组,Javascript控制台也会将条目作为模型进行评估,以便您可以看到主干提供的方法

你需要做的是使用.findWhere

这将返回第一个匹配模型,作为正确类型的对象

或者,您可以尝试(只是为了证明)“homeTeam[0]。保存(…)


澄清一下:你犯了错误,因为主队不是你想象的那样;欢迎使用Javascript

假设
team.teamName
是唯一的,您可以安全地使用
.findWhere
,它从集合中返回单个模型,而不是
。find
,它返回一组模型

从:

findWhere
查看列表并返回与属性中列出的所有键值对匹配的第一个值

相对于

其中
查看列表中的每个值,返回包含属性中列出的所有键值对的所有值的数组


假设
team.teamName
是唯一的,您可以安全地使用
.findWhere
,它从集合中返回单个模型,而不是
。find
,它返回一组模型

从:

findWhere
查看列表并返回与属性中列出的所有键值对匹配的第一个值

相对于

其中
查看列表中的每个值,返回包含属性中列出的所有键值对的所有值的数组


假设
team.teamName
是唯一的,您可以安全地使用
.findWhere
,它从集合中返回单个模型,而不是
。find
,它返回一组模型

从:

findWhere
查看列表并返回与属性中列出的所有键值对匹配的第一个值

相对于

其中
查看列表中的每个值,返回包含属性中列出的所有键值对的所有值的数组


假设
team.teamName
是唯一的,您可以安全地使用
.findWhere
,它从集合中返回单个模型,而不是
。find
,它返回一组模型

从:

findWhere
查看列表并返回