【发布时间】:2013-11-18 15:22:21
【问题描述】:
我正在使用 Backbone.js,我想用 Marionette.js 扩展它。有一件事,在 Backbone 中有效,但我无法使用 Marionette 视图实现,是我处理分页的方式。 在 Backbone 中,我在 Backbone.Collection 中有一个名为 pagination 的方法,如下所示:
var ordersCollection = Backbone.Collection.extend({
url: 'collection',
model: Order,
pagination: function(page) {
perPage = 10;
var collection = this;
collection = _(collection.rest(perPage * page));
collection = _(collection.first(perPage));
return collection;
}
});
然后我可以像这样创建分页集合:
ordersCollection = new OrdersCollection();
ordersCollection.fetch();
ordersFirstPage = ordersCollection.pagination(1);
但是当我尝试将此集合传递给 Marionette.CompositeView 时,我收到此错误
Uncaught TypeError: Object [object Object] has no method 'on'
我知道这是因为我的分页函数没有以确切的 Backbone.Collection 格式返回集合。所以我尝试使用以下方法修复它:
ordersFirstPage = new Backbone.Collection(ordersFirstPage)
TypeError 消失了,但是 CompositeView 传递给它的模板的值表现为空。
任何想法,如何修改集合对象或分页功能以使其正常工作?
【问题讨论】:
标签: javascript backbone.js marionette