我想实现。
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集合没有save
且create
适用于单个模型,我是否需要将自己的方法添加到原型中以实现批量保存?
答案 0 :(得分:1)
1。使用urlRoot
var BookModel = Backbone.Model.extend({
idAttribute: 'id',
urlRoot: 'http:/test.com/books/addsinglebook',
defaults: {
id: null,
name: ''
},
});
2。您应该实现自己的save
和create
,因为骨干支持基本的RESTfull API,其中的顺序不支持批量更新/创建。查看here和here以获得类似的解决方案。
答案 1 :(得分:0)
是的,您需要将自己的方法添加到Collection的类中以实现批量保存。在那里,您可以使用Underscore的each
方法来迭代集合的模型:
var BookCollection = Backbone.Collection.extend({
...
bulkSave: function() {
this.each(model.save);
}
...