0

私が今持っているもの


  • 製品モデル/ビュー;
  • 製品コレクション;
  • 製品リスト ビュー;
  • 非常にわかりやすいページャー ビュー。
  • そしてもちろんルーター。

ルーター

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

4

1 に答える 1