1

我在 oder 中使用以下代码来确保将模型添加到基于它们的created_atunix 时间的集合中。较新的项目应该在较旧的项目之前。

comparator: function(a, b) {
    var time_a = a.get('created_at_time');
    var time_b = b.get('created_at_time');

    if(time_a < time_b) return -1;
    else if(time_a > time_b) return 1;
    else return 0; // time_a === time_b
}

由于某些原因,无论如何都会以错误的顺序退回物品。关于解决方案的任何想法?我正在使用 Backbone.js。

谢谢。

4

1 回答 1

4

来自Backbone.Collection.comparator() 文档

比较器函数可以定义为 sortBy(传递一个接受单个参数的函数)或排序(传递一个需要两个参数的比较器函数)。

如果您选择sortBy解决方案,我认为您的情况会更好:

comparator: function( model ) {
  return model.get('created_at_time');
}

如果您想要相反的顺序,只需使用数字版本乘以-1.

更新

无论如何,您的代码工作正常,请检查工作 jsFiddel,所以问题可能出在其他地方。

于 2012-08-17T11:58:12.877 回答