我是骨干的新手(并且也是下划线)。我对纯下划线函数的使用及其在骨干网中的实现有点困惑。
例如,我需要对一个集合进行排序,然后对其进行迭代 如果我只需要其中一个,那么这个就可以了:
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( ... )
有可能吗?怎么样?
答案 0 :(得分: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();