私が今持っているもの
- 製品モデル/ビュー;
- 製品コレクション;
- 製品リスト ビュー;
- 非常にわかりやすいページャー ビュー。
- そしてもちろんルーター。
ルーター
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);
});
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