Backbone Collection和Model url,批量模型集合保存

时间:2014-10-08 11:34:11

标签: javascript backbone.js backbone-collections backbone-model

我想实现。

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

2. 我想进行批量保存( 我该怎么做 )。所以,例如,假设我有一系列书籍模型,我想使用Collection的网址立即保存它。

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集合没有savecreate适用于单个模型,我是否需要将自己的方法添加到原型中以实现批量保存?

2 个答案:

答案 0 :(得分:1)

1。使用urlRoot

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

2。您应该实现自己的savecreate,因为骨干支持基本的RESTfull API,其中的顺序不支持批量更新/创建。查看herehere以获得类似的解决方案。

答案 1 :(得分:0)

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

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