假设我有一个集合,我已经对其许多模型进行了更改.使用单个HTTP请求保存所有更改的最佳方法是什么?
model-view-controller jquery backbone.js backbone.js-collections
我一直在查看有关如何使用非RESTful服务器保存Backbone集合的多篇帖子,我仍然有点困惑.我创建了一个集合,我已经覆盖了toJSON方法来自定义我的数据以发布到我的API("/api/entity/735/request/personDelete"目前换成了jsfiddles/echo/json).所以我创建了一个save使用的方法Backbone.sync,在success我注销任何类型的响应时,对象是空的,不确定丢失的地方或我做错了什么; 谁能给我一些指导?只是想让这个例子工作,所以我可以使用这样的东西.
JS
var PersonCollection = Backbone.Collection.extend({
model: PersonModel,
url: function() {
// Dummy JSFiddle endpoint
// Example non-RESTful url "/api/entity/735/request/personDelete"
return '/echo/json/';
},
/**
* Override toJSON to loop through collection models making
* custom objects containing specific attributes to be posted.
*/
toJSON: function() {
console.log(this.models);
var plucked = this.models.map(function(model) {
return _.pick( model.toJSON(), ["id","name", "teams"] )
});
console.log(plucked);
return plucked;
},
save: function(options) {
Backbone.sync('create', this, { …Run Code Online (Sandbox Code Playgroud) 我有一个类别的层次结构.我使用jquery库来构建层次结构,以便按照用户想要的方式混淆.然后他们点击保存.因此,要保存的初始层次结构和层次结构可能完全不同.
层次结构表示为集合,我使用parentIds使用ol和li标记构建树.
当用户单击"保存"时,我需要使用新的parentId更新集合中的所有项目,并将每个项目与服务器同步.
我想知道是否有人对如何继续这里有任何建议.我在Backbone.sync的文档中看到,'' setTimeout用于批量快速更新到单个请求.''所以,如果我理解正确,我会将每个调用排队到Backbone.sync然后使用setTimeout几秒后将我的队列发送到服务器?
另外,如果我重写Backbone.sync,我是否仍然需要一个'save'方法,用于解析响应的json的集合(服务器响应必须发回一个对象列表),然后调用模型.set集合中的每个项目?有人有任何示例代码吗?
谢谢!
我在一个项目中使用骨干.我有一个场景,我在一个集合中添加了我的多个模型.现在我在集合中有一系列模型.我正在使用休息服务以节省费用.现在我想对服务器进行调用以保存那些模型数组.我知道有一种方法可以传递模型来创建集合方法
this.collection.create(model)但它是单一模型保存.我也试过应用循环,但它似乎不起作用.请帮帮我.
提前致谢
我一次保存一个模型没有问题,我写了一个对象数组的递归保存.在每次成功保存时,我移出一个对象,如果数组长度不是0 - >重复...一旦数组长度达到零,那么我知道所有保存都成功并执行适当的操作.
如果有更好的方法,想知道吗?比上面描述的方法,休息服务api不采用集合,但如果我有一个保存集合的例子,我会要求修改服务.