Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Backbone.js 在主干网中保存收藏的最佳方式是什么?_Backbone.js_Backbone.js Collections - Fatal编程技术网

Backbone.js 在主干网中保存收藏的最佳方式是什么?

Backbone.js 在主干网中保存收藏的最佳方式是什么?,backbone.js,backbone.js-collections,Backbone.js,Backbone.js Collections,我一次保存一个模型没有问题,我编写了一个对象数组的递归保存。每次成功保存时,我移出一个对象,如果数组长度不是0->重复。。。一旦数组长度达到零,我就知道所有保存都成功,并执行相应的操作 不知道有没有更好的办法?与上述方法相比,rest服务api不接受集合,但如果我有保存集合的示例,我会要求修改服务。尽管集合中没有内置的save方法,但这肯定是个好主意。您的情况听起来会从中受益,因为循环每个模型并单独保存它们是一种非常昂贵的网络通信方式 在其核心,主干网使用jQuery的AJAX发布到服务器。。。

我一次保存一个模型没有问题,我编写了一个对象数组的递归保存。每次成功保存时,我移出一个对象,如果数组长度不是0->重复。。。一旦数组长度达到零,我就知道所有保存都成功,并执行相应的操作


不知道有没有更好的办法?与上述方法相比,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请求。看起来像的副本。