主干日期+其他参数排序
backbone date + other parameters sorting
因此,这是有效的:
comparator: function(model) {
if(this.activeSort == "time_created") {
return -(Date.parse(model.get('time_created')) || 1);
} else {
var sort = [
model.get('title'),
model.get('category'),
];
return sort;
}
}
但是,如果我想按"time_created"和其他参数(title、category)进行排序,则排序将不再有效。我想不通!
基本上,我希望这个工作:
comparator: function(model) {
if(this.activeSort == "time_created") {
var sort = [
// date descending
-(Date.parse(model.get('time_created')) || 1),
model.get('title'),
model.get('category'),
];
return sort;
} else {
var sort = [
model.get('title'),
model.get('category'),
];
return sort;
}
}
您确实应该使用双参数比较器。返回数组不是使单参数比较器作为多属性比较器工作的好方法,主要是因为它不能可靠地工作(正如您所发现的)。
因此:
comparator: function(o1, o2) {
var v1, v2;
if (this.activeSort == "time_created") {
v1 = Date.parse(o1.get("time_created")) || 1;
v2 = Date.parse(o2.get("time_created")) || 1;
if (v1 > v2)
return -1;
if (v2 > v1)
return 1;
}
v1 = o1.get("title");
v2 = o2.get("title");
if (v1 < v2)
return -1;
if (v2 < v1)
return 1;
v1 = o1.get("category");
v2 = o2.get("category");
if (v1 < v2)
return -1;
if (v2 < v1)
return 1;
return 0;
}
相关文章:
- 如何从网页中对具有多个不同参数的JSON进行排序
- 如何在从排序方法调用参数时将其传递给回调
- 按字段值作为参数对数组中的对象进行排序
- 按函数参数按特定列进行可排序
- 在 Sails.js 中重新排序文件上传的表单参数
- 回调函数的参数如何依赖于排序
- 用于对数据进行排序的多个 (2) 个哈希 URL 参数
- Javascript - 对 2 参数对象的数组进行排序
- 从 Node.js 中的两个 JavaScript 对象对查询字符串中的参数进行排序
- 哪个参数与运算符一起排序,作为 Javascript 中的预柯里函数和组合
- 如何在javascript函数中对参数进行排序
- Mongo:使用$in数组参数对结果进行排序
- 排序比较是如何得到的's参数
- 多个排序查询参数与Backbone.paginator
- 如何用优先级排序和浅参数查询Firebase数据库
- 如何发送参数到PHP排序数据库
- 如何传递额外的参数给排序函数
- JavaScript中,使用第二个参数排序更快
- 主干日期+其他参数排序
- 请求参数排序未定义[在多部分/表单数据或一般中] - 该怎么办