Backbone.js 主干收集导出问题
我有一组用户(模型用户) 模型有一个布尔值:isExport 我有一个按钮,点击该按钮可以向服务器发送所有isExport=true的用户 有人能为这个问题提出一个合适的解决方案吗 我知道可以将集合包装为模型并覆盖toJSON函数 但是到目前为止还不能管理它(有人能给出一个代码示例吗?) 谢谢!Backbone.js 主干收集导出问题,backbone.js,backbone-events,Backbone.js,Backbone Events,我有一组用户(模型用户) 模型有一个布尔值:isExport 我有一个按钮,点击该按钮可以向服务器发送所有isExport=true的用户 有人能为这个问题提出一个合适的解决方案吗 我知道可以将集合包装为模型并覆盖toJSON函数 但是到目前为止还不能管理它(有人能给出一个代码示例吗?) 谢谢! Roy主干集合默认情况下没有任何对服务器的写入操作,因此您需要向集合子类添加一个新方法,例如doExport,使用。其中获取具有isExport=true及其toJSON()的模型获取对象数组,然后使用
Roy主干集合默认情况下没有任何对服务器的写入操作,因此您需要向集合子类添加一个新方法,例如
doExport
,使用。其中
获取具有isExport=true
及其toJSON()的模型
获取对象数组,然后使用主干网将其发送到服务器。sync
或$。post
主干网提供RESTful支持。
因此,如果为每个集合提供一个指向集合rest服务的url,那么通过几个函数(创建、保存)就可以处理服务器请求
App.Models.User = Backbone.Model.extend();
App.Collections.Users = Backbone.Collection.extend({
url: 'users',
model: App.Models.User
});
因此,通过这种方式,您可以:
var users = new App.Collections.Users();
users.fetch(); // This will call yoursite.com/users
// Expecting a json request
然后你可以:
users.create({ name: 'John', isExport: true });
这将向服务器发送post请求,以便创建新记录。
您可以在服务器端检查它是否有您想要的标志
App.Views.ExportAll = Backbone.View.extend({
el: '#exportAll',
events: {
'click': 'exportAll'
},
exportAll: function(e){
e.preventDefault();
console.log('exporting all');
console.log(this.collection.toJSON());
var exportModel = new App.Models.Export;
exportModel.set("data", this.collection.toJSON());
console.log(exportModel.toJSON());
exportModel.save();
}
});
我认为这是解决这个问题的最好办法
App.Views.ExportAll = Backbone.View.extend({
el: '#exportAll',
events: {
'click': 'exportAll'
},
exportAll: function(e){
e.preventDefault();
console.log('exporting all');
console.log(this.collection.toJSON());
var exportModel = new App.Models.Export;
exportModel.set("data", this.collection.toJSON());
console.log(exportModel.toJSON());
exportModel.save();
}
});