主干集合和模型url,批量模型集合保存

Backbone Collection and Model url, bulk model collection save

本文关键字:集合 模型 保存 url      更新时间:2023-09-26

我想要实现。

1.在model.save上创建单个模型应指向Models属性中提到的url

2.我想进行大容量保存(我该怎么做)。所以,根据这个例子,假设我有一个图书数组模型,我想使用Collection的url立即保存它。

var BookModel = Backbone.Model.extend({
   idAttribute: 'id',
   url: function() {
     return 'http:/test.com/books/addsinglebook'
   },
   defaults: {
     id: null,
     name: ''
  },
});
var BookCollection = Backbone.Collection.extend({
  url: 'http:/test.com/books/addbulkbooks',
  model: BookModel,   
});
// bookmodel.save() should point to /addsinglebook
// bookcollection.somesavemethod() should point to /addbulkbooks

由于Backbone集合没有save,而create用于单个模型,因此我是否需要将自己的方法添加到原型中以实现批量保存?

1.使用urlRoot

var BookModel = Backbone.Model.extend({
   idAttribute: 'id',
   urlRoot: 'http:/test.com/books/addsinglebook',
   defaults: {
     id: null,
     name: ''
  },
});

2。您应该实现自己的savecreate,因为主干网支持基本的RESTfull API,而按其顺序,该API不支持批量更新/创建。在这里和这里查找类似的解决方案。

是的,您需要将自己的方法添加到Collection的类中以实现大容量保存。在那里,您可以使用Underscore的each方法迭代Collection的模型:

var BookCollection = Backbone.Collection.extend({
...
    bulkSave: function() {
        this.each(model.save);
    }
...