0

如何在集合中使用视图中的函数(如何从另一个文件中引用它)例如我在集合中有这个分页功能

pagination : function(perPage, page) {

                page = page - 1;
                var collection = this;
                collection = _(collection.rest(perPage * page));
                collection = _(collection.first(perPage));
                return collection.map( function(model) {
                    return model.toJSON();
                });
            },

这就是我尝试过的但不正确的:

var paginatedCollection = new BansCollection(pagination(this.pageSize,pageToLoad));
4

2 回答 2

1

我觉得作用于集合的函数不应该放在 Backbone View 对象中。我会将分页功能放在您的 BansCollection 中,以便您可以在视图代码中执行以下操作:

var paginatedCollection = new BansCollection();
paginatedCollection.pagination(this.pageSize, pageToLoad);
于 2013-09-05T06:22:34.960 回答
0

initialize您查看您的视图时,您还可以使用其他选项传递您的收藏。

var myView = new MyView({collection: myCollection});

然后在您看来,您可以使用它来引用它this.collection

正如@JonasGeiregat 所建议的那样,视图可能不适合分页逻辑。因此,将分页逻辑移动到集合后,您可以在视图中执行此操作。

var models = this.collection.paginate(pageSize, page);
// render do whatever to print out those models/json
于 2013-09-05T08:00:07.107 回答