我希望能够先按照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
答案 0 :(得分:4)
你的“比较器”可以返回一个字符串,该字符串由你的布尔“必需”属性的值和字符串化版本组成,它将按照你想要的方式排序:
comparator: function(model) {
return (model.required ? "0" : "1") + model.value;
}
这样,值“A”将被比作“0A”或“1A”,具体取决于“必需”标志。