1

私はこのWebアプリtodos.jsに取り組んでいます。これは、このURLで十分に文書化されています。

1ページあたりのアイテム数を制限するためのオプションを追加したいと思います。

ここでうまくいく私の試みですが、それがこのタスクを実行する正しい方法であるかどうかはわかりません:

var AppView = Backbone.View.extend({

    firstPage: 0,
    perPage: 2,
    counter: 0,

......
    addOne: function addOne (todo) 
    {
        var view,
            isIntoRange;

        view = new TodoView({
            model: todo
        });

        isIntoRange = (
            this.counter >= (this.firstPage * this.perPage) 
            &&
            this.counter < (this.firstPage * this.perPage) + this.perPage   
        );

        if (isIntoRange) {             
            this.$("#todo-list").append(view.render().el);
        }
        this.counter += 1;
    },

    addAll: function() {
        Todos.each(this.addOne);
    },
  .....
});
4

1 に答える 1

1

バックボーンページネーターは良い選択だと言ったので、addOneこのタスクを実行するための方法を変更しません。

むしろ、次の2つのパラメーターを受け入れることができる新しいメソッドを追加し ますshowTasksfirstPageperPage

    showTasks: function showTasks (firstPage, perPage)
    {
        // your code
    }

次に、このメソッドはリンクから呼び出す必要があるbackbone.routerため、ページのレンダリングに使用します。

   var AppRouter = Backbone.Router.extend({
       ....
       linkAction: function(firstPage, perPage){
           taskView.showTasks(firstPage, perPage);
       },
       ....
   });
于 2012-04-16T16:29:47.073 に答える