Javascript 更新主干集合
我有一个Restful服务,它返回一个JSON对象数组。该服务允许用户指定最大结果和数据分页。我将此服务映射到一个集合,并在默认情况下将max_结果设置为10和第1页。我现在想从下一页获取数据,并更新/更改集合中的模型。我如何才能做到这一点。 主干收集:Javascript 更新主干集合,javascript,jquery,backbone.js,Javascript,Jquery,Backbone.js,我有一个Restful服务,它返回一个JSON对象数组。该服务允许用户指定最大结果和数据分页。我将此服务映射到一个集合,并在默认情况下将max_结果设置为10和第1页。我现在想从下一页获取数据,并更新/更改集合中的模型。我如何才能做到这一点。 主干收集: define(['backbone','models/Video'],function(Backbone,Video) { return Rock = Backbone.Collection.extend ({ model:Video,
define(['backbone','models/Video'],function(Backbone,Video) {
return Rock = Backbone.Collection.extend ({
model:Video,
url:"/root/max_result/page"
});
});
那么第2页的url看起来像
'/root/10/2'
define(['backbone','models/Video'],function(Backbone,Video) {
return Videos = Backbone.Collection.extend ({
model:Video,
initialize: function(models, options){
// get options.genre or use 'rock' as default
this.genre = options && _.has(options, 'genre') ? options.genre : 'rock';
},
fetch: function(options){
// make sure we have options object
options = options ? _.clone(options) : {};
// if no url in options, create url using options.page
if(!_.has(options, 'url')){
options.url = "/" + this.genre + "/10/" + options && _.has(options, 'page') ? options.page : 1;
}
return Backbone.Collection.prototype.fetch.apply(this, [options]);
}
});
});
// fetch page 3
var rock = new Videos(null, {genre: 'rock'});
rock.on('reset', function(){
// each time you fetch, this will be called.
});
rock.fetch({page:3});
那么第2页的url看起来像
'/root/10/2'
define(['backbone','models/Video'],function(Backbone,Video) {
return Videos = Backbone.Collection.extend ({
model:Video,
initialize: function(models, options){
// get options.genre or use 'rock' as default
this.genre = options && _.has(options, 'genre') ? options.genre : 'rock';
},
fetch: function(options){
// make sure we have options object
options = options ? _.clone(options) : {};
// if no url in options, create url using options.page
if(!_.has(options, 'url')){
options.url = "/" + this.genre + "/10/" + options && _.has(options, 'page') ? options.page : 1;
}
return Backbone.Collection.prototype.fetch.apply(this, [options]);
}
});
});
// fetch page 3
var rock = new Videos(null, {genre: 'rock'});
rock.on('reset', function(){
// each time you fetch, this will be called.
});
rock.fetch({page:3});
是否要将项目的第二页添加到集合中,以便集合将以两页结束?还是希望新页面替换第一页的项目?否,我只希望新页面的项目是否希望将第二页的项目添加到集合中,这样集合将以两页结束?还是希望新页面替换项目的第一页?不,我只想要项目的新页面