Backbone.js 在主干网中保存收藏的最佳方式是什么?
我一次保存一个模型没有问题,我编写了一个对象数组的递归保存。每次成功保存时,我移出一个对象,如果数组长度不是0->重复。。。一旦数组长度达到零,我就知道所有保存都成功,并执行相应的操作Backbone.js 在主干网中保存收藏的最佳方式是什么?,backbone.js,backbone.js-collections,Backbone.js,Backbone.js Collections,我一次保存一个模型没有问题,我编写了一个对象数组的递归保存。每次成功保存时,我移出一个对象,如果数组长度不是0->重复。。。一旦数组长度达到零,我就知道所有保存都成功,并执行相应的操作 不知道有没有更好的办法?与上述方法相比,rest服务api不接受集合,但如果我有保存集合的示例,我会要求修改服务。尽管集合中没有内置的save方法,但这肯定是个好主意。您的情况听起来会从中受益,因为循环每个模型并单独保存它们是一种非常昂贵的网络通信方式 在其核心,主干网使用jQuery的AJAX发布到服务器。。。
不知道有没有更好的办法?与上述方法相比,rest服务api不接受集合,但如果我有保存集合的示例,我会要求修改服务。尽管集合中没有内置的
save
方法,但这肯定是个好主意。您的情况听起来会从中受益,因为循环每个模型并单独保存它们是一种非常昂贵的网络通信方式
在其核心,主干网使用jQuery的AJAX发布到服务器。。。那么,为什么不在你的收藏中充分利用这一点呢
$.ajax({
type: "POST",
url: "/my/api",
dataType: "JSON",
data: myCollection.toJSON()
});
这将在
/my/api
端点将对象数组作为JSON发布回服务器。您可以轻松地将其包装到集合或其他对象中的方法中。我使用集合中的直接保存功能完成此操作:
Backbone.sync('update', this, {
success: function() {
alert('saved');
}
});
希望有帮助。对于主干网0.9.9,
myCollection.sync('update',myCollection)
将使用对象数组发送PUT请求。看起来像的副本。