backbone.js请求请求模型与响应模型不同的实体

时间:2012-06-02 04:12:53

标签: jquery backbone.js

我正在使用backbone.js来构建我的客户端应用程序。 Backbone.sync适用于所有CRUD操作,但是我不清楚如何实现我需要做的服务器端请求之一。该请求涉及将包含算法参数的模型发送到服务器,并接收包含算法结果的响应(图表数据点,表格数据等)。调用model.save()并不是正确的做法,因为backbone需要一个包含更新模型的响应,而理想情况下我想用响应创建一个全新的模型。

我应该简单地回到jQuery.ajax({data:model.toJson(),...})并使用响应创建一个新模型吗?或者还有其他一些我想念的聪明人吗?

非常感谢。

2 个答案:

答案 0 :(得分:8)

您想要做的事情听起来不像创建,更新,读取或销毁,听起来更像是RPC调用。没有理由尝试将非CRUD操作转换为像Backbone.sync这样的CRUD系统,只要有意义就可以自己调用$.ajax并且RPC样式的调用听起来很好用做一些手动AJAXing。大概你可以将success结果转换成一个或多个set个调用,然后让Backbone的事件系统从那里获取它。

答案 1 :(得分:2)

虽然我同意@ mu的答案,但我想说,始终是一种在 CRUD 中封装非CRUD 操作的方法。

例如,在您的情况下,您可以拥有一个已加载属性的模型,这些属性将作为创建实例所需的参数发送到服务器。

服务器期待 POST 操作来创建一个实体,比如Chart模型。服务器使用参数来构建图表,并返回图表的JSON表示,包括:初始参数和结果参数。

然后,在Backbone层中,Model将包含您需要的所有数据,不仅包括结果数据,还包含原始数据。