0

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

大声想知道是否有更好的方法?与上述方法相比,其余服务 api 不采用集合,但如果我有保存集合的示例,我会要求修改服务。

4

2 回答 2

6

尽管集合中没有save内置方法,但这当然是个好主意。您的情况听起来会从中受益,因为循环遍历每个模型并单独保存它们是完成此任务的一种非常非常非常昂贵的网络流量方式。

Backbone 的核心是使用 jQuery 的 AJAX 发布到服务器……那么为什么不在您的收藏中利用它呢?


$.ajax({
  type: "POST",
  url: "/my/api",
  dataType: "JSON",
  data: myCollection.toJSON()
});

这会将一组对象作为 JSON 发送回/my/api端点的服务器。您可以轻松地将其包装到您的集合或另一个对象中的方法中。

于 2013-01-02T02:42:51.030 回答
1

我直接在集合中使用保存功能来做到这一点:

Backbone.sync('update', this, {
    success: function() {
        alert('saved');
    }
});

希望能帮助到你。

于 2013-01-02T07:55:25.187 回答