1

我正在开发这个网络应用程序 todos.js,它在这个url上有很好的记录。

我想添加一个选项,以便每页显示有限数量的项目。

这是我的尝试,但我不确定这是否是完成这项任务的正确方法:

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

话虽如此,backbone-paginator 是一个不错的选择,但我不会修改addOne执行此任务的方法:

相反,我将添加一个 showTasks可以接受两个参数的新方法:firstPageperPage

    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 回答