Backbone:将整个集合保存到非RESTful服务器

时间:2015-10-14 20:43:57

标签: javascript jquery json rest backbone.js

我一直在查看有关如何使用非RESTful服务器保存Backbone集合的多篇帖子,我仍然有点困惑。我创建了一个集合,我已覆盖toJSON方法来自定义我的数据以便发布到我的API("/api/entity/735/request/personDelete"当前换成jsfiddles / echo / json)。所以我在save上创建了一个使用Backbone.sync的{​​{1}}方法,我注销了任何类型的响应,而且对象是空的,不确定失去了或我做错了什么;谁能给我一些指导?只是想让这个例子工作,所以我可以使用这样的东西。

JS

success

JSFiddle: http://jsfiddle.net/kyllle/f1h4cz7f/3/

2 个答案:

答案 0 :(得分:7)

如果对sync没有帮助,你不必强迫自己使用syncrequest可以节省您在常见情况下的时间。

正如您在annotated sync code中看到的那样,它最终只调用jQuery.ajax并包含帮助RESTful后端的逻辑。

此外,它会触发一些您可能会或可能不会在应用的其他部分收听的事件,例如sync(发出请求时)和error(请求成功完成时) ,或sync(如果请求失败)

如果重新发明type IDatabase = abstract GetThingsByCountThenLength : count:int -> length:int -> Thing list abstract GetUsersByFirstNameThenLastName : firstName:string -> lastName:string -> User list 并不令人兴奋,您可以在应用中执行所有这些操作。

准备您的数据,如果您要收听数据,请致电$.ajax将数据发送到您的后端,并选择trigger骨干事件。

答案 1 :(得分:0)

您可以将您的收藏包装在骨干模型中。

var CollectionWrapper = Backbone.Model.extend({
    url: "/echo/json"
});

然后你可以使用model.save()和/或Backbone.sync(),因为Backbone打算使用它。

请参阅此答案:"How" to save an entire collection in Backbone.js - Backbone.sync or jQuery.ajax?