2011-12-20 72 views
16

我有一个集合,它返回给定范围内的每个日期的模型(通过Rails控制器馈入)。Backbone新手:如何从集合中获得第一个模型?

在我的集合中,我想显示集合中第一个日期的月份......我只是想知道实现这个最优雅的方法是什么?

看起来最直接的方法是通过集合访问模型数组,并抓住第一个模型,然后在该模型中运行所需的方法来检索月份名称。看起来很简单,但我无法弄清楚如何从集合中获取第一个模型。

另外,我可以通过调用路由器()从轨道传递所需的值,但这似乎有点难看。

最后,我可以做一个全新的集合只是来检索一个值,但再次 - 似乎过度。

有关我该如何去做这件事的任何建议?假设将模型数据反馈回集合并不是一个太大的禁忌,我想我正在问如何做到这一点。

回答

47

Backbone.js集合可以访问Underscore.js方法。

MyCollection.first()应该从集合中返回第一个模型。

+1

http://documentcloud.github.com/backbone/#Collection-Underscore-Methods和http:// documentcloud .github.com/underscore /获取更多信息。 – djlumley 2011-12-21 04:13:18

+0

如果你不使用下划线而是另一个模板引擎(如handlebars.js)会怎么样?是否有一个本地backbone.js方法或模式? – lucke84 2012-10-22 14:43:18

+2

@ lucke84 - 'Underscore.js'很难依赖,所以即使你使用另一个模板引擎(EJS,ECO,Jade等),你仍然会包含'Underscore.js',并且应该能够使用它的方法在你的视图中(只要它们允许Javascript被评估)。 如果你使用的模板引擎不允许Javascript被评估,那么它应该是一个非常简单的设置视图变量的事情然后再渲染它的特定视图。 – djlumley 2012-10-22 22:48:29

7
collection.at(0) //etc 

但是,如果你要检查是否有至少一个元素

if(collection.length){ 
    collection.at(0) //etc 
} 
相关问题