Backbone.js 主干收集导出问题

Backbone.js 主干收集导出问题,backbone.js,backbone-events,Backbone.js,Backbone Events,我有一组用户(模型用户) 模型有一个布尔值:isExport 我有一个按钮,点击该按钮可以向服务器发送所有isExport=true的用户 有人能为这个问题提出一个合适的解决方案吗 我知道可以将集合包装为模型并覆盖toJSON函数 但是到目前为止还不能管理它(有人能给出一个代码示例吗?) 谢谢! Roy主干集合默认情况下没有任何对服务器的写入操作,因此您需要向集合子类添加一个新方法,例如doExport,使用。其中获取具有isExport=true及其toJSON()的模型获取对象数组,然后使用

我有一组用户(模型用户) 模型有一个布尔值:isExport 我有一个按钮,点击该按钮可以向服务器发送所有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();
}
});