Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Backbone.js 从视图中引用集合中的函数_Backbone.js - Fatal编程技术网

Backbone.js 从视图中引用集合中的函数

Backbone.js 从视图中引用集合中的函数,backbone.js,Backbone.js,当函数在集合中时,如何使用视图中的函数(如何从另一个文件中引用该函数),例如,我在集合中有此分页函数 pagination : function(perPage, page) { page = page - 1; var collection = this; collection = _(collection.rest(perPage * page)); collec

当函数在集合中时,如何使用视图中的函数(如何从另一个文件中引用该函数),例如,我在集合中有此分页函数

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

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

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

当您
初始化视图时
您还可以通过其他选项传递收藏

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