首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >初始化后对主干集合进行排序

初始化后对主干集合进行排序
EN

Stack Overflow用户
提问于 2011-08-10 11:01:46
回答 3查看 62.1K关注 0票数 53

我正在使用Backbone.js来呈现一个项目列表,例如Books。在呈现列表之后,用户可以选择对它们进行排序。因此,如果用户单击按标题排序或按作者姓名排序,列表将在客户端自动排序。

代码语言:javascript
复制
  window.Book = Backbone.Model.extend({
   defaults: {
     title: "This is the title",
     author: "Name here"
   },

在主干应用程序的上下文中使用来完成此排序的最佳方式是什么。我在AppView中使用jQuery dom排序器吗?

EN

回答 3

Stack Overflow用户

发布于 2012-01-10 19:02:37

您可以更新比较器函数,然后调用排序方法。

代码语言:javascript
复制
// update comparator function
collection.comparator = function(model) {
    return model.get('name');
}

// call the sort method
collection.sort();

视图将自动重新呈现。

票数 51
EN

Stack Overflow用户

发布于 2011-08-10 13:25:25

comparator正是您所需要的

代码语言:javascript
复制
var PhotoCollection = Backbone.Collection.extend({
    model: Photo,
    comparator: function(item) {
        return item.get('pid');
    }
});
票数 12
EN

Stack Overflow用户

发布于 2015-10-27 12:03:15

这种方式工作良好,可以动态地按所有attributes排序,并处理ascendingdescending

代码语言:javascript
复制
var PhotoCollection = Backbone.Collection.extend({
    model: Photo,
    sortByField: function(field, direction){
            sorted = _.sortBy(this.models, function(model){
                return model.get(field);
            });

            if(direction === 'descending'){
                sorted = sorted.reverse()
            }

            this.models = sorted;
    }
});
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7005411

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档