从视图中引用集合中的函数

时间:2013-09-05 04:52:09

标签: backbone.js

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

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));

2 个答案:

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