大家好我正在创建我的第一个Backbone.js应用程序。它基本上是一个在表中呈现数据的集合。我想要做的是能够过滤和排序数据。 最好的方法是什么?我应该使用路由器还是存储一些会考虑渲染的参数。
我认为路由器将很快变得非常复杂,因为我将有3-4个过滤器和1个订单选项。
您怎么看?
答案 0 :(得分:1)
在我的基于骨干的项目中,我已经将Backbone.Collection子类化,以允许Controller向其添加任意GET参数。
以下是您的代码:
RailsCollection = Backbone.Collection.extend({
initialize: function() {
_.bindAll(this, 'url');
},
url: function() {
var base = this.baseUrl || this.model.prototype.baseUrl;
if(!this.params) {
return base;
} else {
return base + '?' + $.param(this.params);
}
}
});
答案 1 :(得分:0)
我会在我的集合中添加用于过滤和排序的方法,并使用视图来呈现可能被过滤或排序的任意集合。
对于订购,有一个内置的钩子:http://documentcloud.github.com/backbone/#Collection-comparator
对于过滤,请查看集合中的下划线帮助器方法,并使用您自己的方法进行扩展。
例如,你可以有一个collection.doFiltering([filter1,filter2,filter3]); 返回一个已过滤的数组。