2011-12-20 79 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 
} 
相關問題