我想按两个属性对集合进行排序,一个是“完整”,它返回 true 或 false,第二个是按 id,除了我需要那个是降序的。有没有办法做到这一点?
问问题
339 次
1 回答
2
是的,你可以做那种事情。集合comparator
接受一个参数或两个参数的函数:
你会想要使用两个参数的形式,像这样:
comparator: function(a, b) {
var ac = a.get('complete');
var bc = b.get('complete');
if(ac && !bc)
return 1;
if(!ac && bc)
return -1;
var as = a.get('seconds');
var bs = b.get('seconds');
if(as > bs)
return -1;
if(bs < as)
return 1;
return 0;
}
如果你有一个不理解两个参数comparator
函数的旧版本的 Backbone,那么你将不得不升级或找出一种方法来混合complete
并seconds
组合成一个排序键,该排序键将使用UnderscoresortBy
正确排序。
于 2012-05-01T05:03:13.557 回答