我现在所拥有的
路由器
var AppRouter = Backbone.Router.extend({
routes: {
'': 'list',
'!/products': 'list',
'!/products/page/:page': 'list'
//, '!/search/:term/:page': 'some_handler'
}
});
appRouter.on('route:list', function(page) {
renderProductsList(page);
});
Pager and its template can be found there
var renderProductsList = function(page) {
require(['collections/ProductsList', 'views/ProductListView', 'views/PagerView'],
function(ProductsList, ProductListView, PagerView) {
var p = page ? parseInt(page, 10) : 1;
var productsList = new ProductsList();
productsList.fetch({
success: function() {
var $container = $("#content-region");
$container.html(new ProductListView({
model: productsList,
page: p
}).el);
// attach pager
var $pager = new PagerView({
// pager options
}).$el;
// ...
},
error: function() {
// handle the error
}
});
});
}
<小时/> 的 问题
renderProductsList
方法吗? where
,filter
等函数吗?我该怎么用?options
参数中传递url模式吗?!/search/:term/:page
<小时/> 我对使用
Backbone.Pagination
不感兴趣
答案 0 :(得分:0)
如果我理解正确,您只需要一个产品列表,并希望创建一些过滤器。因此,您想知道如何做到这一点。好吧,我说这取决于很多因素
无论如何,你在开始时取出一切吗?如果是的话,当然你只会使用JS。如果不是:
缓存结果?好吧,我不知道你是怎么做到的,或者我真的很麻烦。仍然取决于:
数据量转移大吗?
有很多事情需要考虑,问题始于路由器。只有一个路由被叫(Backbone绝对不能调用多个路由,它会在匹配的第一个模式停止,与你拥有的路由器数量无关),你必须加载你的搜索页面,做你的过滤器,然后去到正确的页面
tl;博士:我认为我们没有足够的信息来真正帮助你。
关于如何使用where
等,我认为Backbone's doc在这个问题上非常完整(我真的不知道你想知道些什么)。