如何在收集中使用视图中的函数(如何从其他文件中引用它),例如我在集合中有这个分页功能
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));
答案 0 :(得分:1)
我觉得作用于集合的函数不应该放在Backbone View对象中。 我会将分页功能放在您的BansCollection中,这样您就可以在视图代码中执行以下操作:
var paginatedCollection = new BansCollection();
paginatedCollection.pagination(this.pageSize, pageToLoad);
答案 1 :(得分: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