【发布时间】:2012-02-23 20:58:35
【问题描述】:
在我的 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);
});
ordered 和 owner 是 2 种订购方式。
所以我的第一个问题是,有人可以根据路线建议一种更好的实施方式吗?此视图在多个位置呈现,因此我使用全局变量而不是将有序变量传递给方法?
第二个问题是 - 我还想添加一些过滤,所以假设我想按“价格”排序,但也进行一些过滤(比如说按多个类别 ID)。我如何添加灵活的“路线”来处理过滤。
我想我能做到
routes : {
"" : "index",
'/ordering/:order/:filter1/:filter2' : 'ordering'
},
所以 filter1 和 filter2 将是后续过滤,但如果过滤器可以是 0 或 100,这将不起作用。谁能提供解决方案?
【问题讨论】:
标签: backbone.js routes