gpt4 book ai didi

javascript - 按字母顺序对 Backbone 集合进行排序

转载 作者:行者123 更新时间:2023-11-30 17:03:45 25 4
gpt4 key购买 nike

我有一个 Backbone 集合,它收集了一堆模板名称供人们使用,我想按字母顺序对它们进行排序,以便更容易找到。我很不确定如何做到这一点。

我有我的 Backbone 收藏

this.templates = new Backbone.Collection();

然后我对模板进行排序以找出添加内容的位置。

var Names = this.model.collection.models.map(function(model){
return (model.attributes.Name) ? model.attributes.Name : 'Template';
});

Names.forEach(function(name) {
_this.templates.add(api.collections[(_this.templateType)].where({Name : name, ShowInToolBox : true}));
//adding a bunch of conditionals to add cretin forms to modules that are outside the scope
}

可以按字母顺序排列吗?

我已经尝试将 .sortBy("Name") 添加到 Backbone 集合中,但它只是阻止了我的代码运行。

最佳答案

Backbone 提供 comparator用于排序的属性。您可以将集合应该排序的属性的名称传递到构造函数中:

this.templates = new Backbone.Collection([], { comparator: 'Name' })

每次集合发生变化时,它都会根据比较器中的属性名称重新排序。如果您正在做一些更复杂的事情,您可以定义比较器 作为一个功能。如果你走这条路,那么为了清楚起见,我建议扩展 Backbone.Collection:

var Templates = Backbone.Collection.extend({
comparator: function(template1, template2){
return template1.get('someValue') - template2.get('someValue')
}
})

var templates = new Templates()

关于javascript - 按字母顺序对 Backbone 集合进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28418678/

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