我有一个骨干集合和模型,'effdate'作为显示网格中的输入之一。我想获得一个起始'effdate'并结束'effdate'作为输入并在这些日期内对网格进行排序并显示然后返回到默认页面。
'Effdate'的类型日期类似于02/01/2012作为输入。
处理这种过滤器的最佳方法是什么?
由于
答案 0 :(得分:0)
Backbone集合有一个属性comparator,可以在每次添加模型时对集合进行排序,或者您可以调用sort来强制重新排序。这会触发一个排序事件,您可以使用它来更新视图。
如果您想使用不同的字段在不同的时间对其进行排序,您可以创建一个使用您想要使用的字段的比较器
var Book = Backbone.Model;
var books = new Backbone.Collection;
var sortField = "transdate";
var comparator = function (book) {
return book.get(sortField);
};
var negativeComparator = function (book) {
return (-1 * book.get(sortField));
};
books.add(new Book({
title: "one",
effdate: new Date("02/01/2012"),
transdate: new Date("03/01/2019")
}));
books.add(new Book({
title: "two",
effdate: new Date("02/01/2013"),
transdate: new Date("03/01/2017")
}));
books.add(new Book({
title: "three",
effdate: new Date("02/01/2014"),
transdate: new Date("03/01/2015")
}));
books.comparator = comparator;
sortField = "effdate";
books.sort();
alert(books.pluck("title"))
Here是一个测试它的jsFiddle。