如何使用比较器按多个属性排序
How do I use the comparator to sort by multiple attributes?
我希望能够首先按required
标志排序我的模型,然后按字母顺序排序value
。
目前我的代码看起来像这样:
var myModel = Backbone.Model.extend({
defaults: {
required: true,
value: '',
...
}
};
var myCollection = Backbone.Collection.extend({
model: myModel,
comparator: function (model) {
return -model.get('required');
}
});
myCollection.create([
{value: 'A', required: false},
{value: 'B', required: true},
{value: 'C', required: false},
{value: 'D', required: false},
{value: 'E', required: true}
]);
比较器首先按所需对我的模型进行排序,但我不知道如何按字母顺序对它们进行排序。当前,当视图渲染它们时,它们会显示出来
E, B, D, C, A
我想让它们被渲染:
B, E, A, C, D
您的"comparator"可以返回由值和布尔"required"属性的字符串化版本组成的字符串,它将按您想要的方式排序:
comparator: function(model) {
return (model.required ? "0" : "1") + model.value;
}
这样,值"A"将根据"required"标志比较为"0A"或"1A"。
相关文章:
- jQuery TinySort按数据属性排序和放置
- AngularJS使用对象属性排序多个对象数组
- JavaScript 中的对象属性排序
- 类型错误: 无法读取未定义的属性“排序级别”
- 按属性排序的 Javascript 对象数组不起作用
- 更改按自定义属性排序的对象数组的顺序
- JS mongoDB按previousItem属性排序(父子关系)
- 按ember.js对象控制器中的属性排序
- 按angularJS中的动态属性排序
- 在按导航属性排序时,breezejs:inlineCount不正确
- 按对象属性排序javascript数组
- 如何使用比较器按多个属性排序
- 基于任意长度的属性排序JavaScript对象数组
- 使用javascript按不同属性排序
- Jquery:按内部元素's属性排序
- 在Immutable.js的Map中,按子对象的属性排序的正确方法是什么?
- 基于日期属性排序javascript对象
- 使用NodeJS通过属性排序嵌套JSON
- 按类属性排序对象的树结构
- 使用jQuery UI Sortable交换数据属性排序