什么是在骨干中保存集合的最佳方法?

时间:2013-01-01 23:07:28

标签: backbone.js backbone.js-collections

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

如果有更好的方法,我会想知道吗?比上面描述的方法,休息服务api没有收集,但如果我有一个保存集合的例子,我会要求修改服务。

2 个答案:

答案 0 :(得分:6)

虽然Collection中没有内置save方法,但这肯定是个好主意。你的情况听起来好像会受益,因为循环遍历每个模型并单独保存它们是一种非常非常昂贵的网络流量方式。

在它的核心,Backbone使用jQuery的AJAX发布到服务器...所以为什么不利用你的收藏?


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

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

答案 1 :(得分:1)

我直接在集合中使用保存功能:

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

希望它有所帮助。