2014-01-28 66 views
2

我是新來的主幹(以及下劃線)。我對使用純粹的下劃線函數及其在主幹中的實現有點困惑。主幹採集和下劃線功能實現

例如,我需要對一個集合進行排序,然後遍歷它。
如果我需要做的只是其中之一,那麼這一個工程:

this.collection.each(function(item) { .... }, this); 

而這一次也:

this.collection.sortBy(function(obj) { return obj.get('position'); }) 

但隨後,爲了把它們結合在一起我想不出瞭解如何(以及如果)我可以鏈接它們。我能做到這一點的唯一方法是:

_.each(this.collection.sortBy(function(obj) { 
    return obj.get('position'); 
}), function(item) { .... }, this); 

雖然我想這樣做:

this.collection.sortBy(...).each(...) 

這可能嗎?怎麼樣?

回答

3

您必須通過調用代理_.chain集合上的collection.chain明確聲明一個操作鏈。例如:

var ms = this.collection.chain(); 
ms.sortBy(function(m) { 
    return m.get('position'); 
}).each(function(m) { 
    console.log(m.get('position')); 
}); 

並演示http://jsfiddle.net/nikoshr/t4JCm/1/

然後,您可以通過

ms.value(); 
得到您的訂購/修改/更新機型