骨干收集和下划线功能实现

时间:2014-01-28 09:27:34

标签: javascript backbone.js underscore.js

我是骨干的新手(并且也是下划线)。我对纯下划线函数的使用及其在骨干网中的实现有点困惑。

例如,我需要对一个集合进行排序,然后对其进行迭代 如果我只需要其中一个,那么这个就可以了:

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( ... )

有可能吗?怎么样?

1 个答案:

答案 0 :(得分:3)

您必须通过调用集合上代理_.chaincollection.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();