gpt4 book ai didi

backbone.js - 主干排序集合数组

转载 作者:行者123 更新时间:2023-12-03 07:45:41 25 4
gpt4 key购买 nike

我有一个主干和下划线的应用程序。我已经看到了这个问题,但我还没有解决我的问题,因为有点不同:
Sorting Backbone Collections
Backbone/Underscore sortBy is not sorting collection

我的问题是:我在 View 中有一个集合,我想按字段顺序对其进行排序,然后将此集合打印到模板中。

我已经尝试过,但不适用于下划线:

this.hotels.models = _(this.hotels.models).sortBy("order");
$(this.el).html(this.template({hotels: this.hotels.models}));

如何对我的收藏(模型)进行排序并在打印后将其放入模板中?我的代码没有对数组进行排序。

最佳答案

models 数组是 Model 对象的数组,其属性存储在 model.attributes 中。包装数组并调用 sortBy 假定正在排序的对象是普通对象,并且可以通过 model.{attribute} 直接访问属性。

要让它执行您想要的操作,您可以传递 sortBy 一个比较器函数,该函数获取您想要的属性:

this.hotels.models = _(this.hotels.models).sortBy(function(model) {
return model.get("order");
});

然而,这就是 Backbone 已经在 Collection 类中所做的事情。要使用内置比较器,您只需将集合的 comparator 属性设置为您要排序的模型属性的名称。

示例:

this.hotels.comparator = "order";
this.hotels.sort();
$(this.el).html(this.template({hotels: this.hotels.models}));

关于backbone.js - 主干排序集合数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17996714/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com