在我的Backbone应用程序中,我的集合中有很多排序方法,当基于集合呈现视图时,我当前正在使用通过路径的全局变量集(我使用全局变量其他操作添加到集合中,我希望使用最后的顺序)。例如主干路由 - 排序和过滤
routes : {
"" : "index",
'/ordering/:order' : 'ordering'
},
ordering : function(theorder) {
ordering = theorder;
listView.render();
},
然后在我看来
if (typeof ordering === 'undefined') {
d = this.collection.ordered();
}
else if(ordering == 'owners') {
d = this.collection.owners();
}
_.each(d, function(model){
model.set({request : self.model.toJSON()});
var view = new TB_BB.OfferItemView({model : model});
els.push(view.render().el);
});
凡订购和业主是2种排序方法。
所以我的第一个问题是,基于路线,有人可能会建议更好的实现方法吗?这个视图在多个地方呈现,因此我使用全局而不是将有序的var传递给方法?
第二个问题是 - 我想也添加一些过滤,所以可以说我想按'价格'排序,但也做一些过滤(可以说多个类别ID)。我怎么能添加一个灵活的'路线'来处理过滤。
我想我能做到
routes : {
"" : "index",
'/ordering/:order/:filter1/:filter2' : 'ordering'
},
所以过滤器1和过滤器2将是后续的滤波,但如果过滤器可能是0或100这是不行的。有谁能提供解决方案吗?
非常感谢Josh,比较器似乎正是我所需要的!过滤也一样! – Xrender 2012-02-24 08:33:22