主干.js请求,其中请求模型是与响应模型不同的实体



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

我是否应该简单地回退到jQuery.ajax({data:model.toJson(),...})并使用响应创建一个新模型?还是我缺少其他聪明的东西?

非常感谢。

你想做的事情听起来不像创建、更新、读取或销毁,它听起来更像是 RPC 调用。没有理由尝试将非 CRUD 操作硬塞到像 Backbone.sync 这样的 CRUD 系统中,只要有意义,您就可以自由地调用$.ajax,RPC 风格的调用听起来像是执行一些手动 AJAX 的好用处。假设你会将success结果转换为一个或多个set调用,并让 Backbone 的事件系统从那里获取它。

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

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

服务器需要 POST 操作来创建模型Chart实体。服务器获取参数来构建图表,并返回图表的 JSON 表示形式,包括:初始参数和结果参数。

然后,在主干层中,模型将包含您需要的所有数据,不仅是结果数据,还包括原始数据。

最新更新