按名称和类别Backbone Collection排序

jon*_*aag 1 backbone.js

我有一个骨干系列和两个按钮.我想要做的是,如果我点击button1它应该按名称排序集合,如果点击button2它应按类别排序.

我试过这个

comparator : function(model){
     return model.get("Name");
}
Run Code Online (Sandbox Code Playgroud)

我的问题是我的收藏中可以有两个比较器吗?我将如何分别按名称和类别对集合进行排序.有任何想法吗?谢谢

kmu*_*h79 7

您可以将sort变量附加到集合并在比较器中使用它:

    App.List = Backbone.Collection.extend({
      initialize: function() {
        this.sortVar = 'Name';
      },
      comparator: function(model){
        return model.get(this.sortVar);
      }
    })
Run Code Online (Sandbox Code Playgroud)

然后在单击链接时更改sortVar并调用sort().