使用backbone.js在保存请求中发送额外的非模型数据?

时间:2012-03-20 12:16:02

标签: javascript rest backbone.js

我正在寻找一种解决方案,用于处理使用backbone.js的模型之间的状态问题。

我有一个时间跟踪应用程序,用户可以在其中启动/停止作业,它将记录作业的工作时间。我有一个工作模型,它保存工作的数据,以及它是否正在“开启”。

一次只能处理一份工作。因此,如果用户启动作业,则必须停止当前正在运行的作业。我想知道这样做的最佳解决方案是什么。我的意思是我可以简单地相应地切换每个作业的'on'参数,然后在每个作业上调用save,但这会导致向服务器发出2个请求,每个请求都有一个完整的每个作业的表示。

理想情况下,如果我可以在保存请求中捎带其他数据,那将是很好的,类似于在获取请求中发送额外数据的方式。我只需要发送当前正在运行的作业的id,因为这与模型无关,需要将模型一起发送,而不是它的一部分。

这样做有好办法吗?我想我可以找到一种方法来维护对当前作业服务器端的引用,如果需要:\

1 个答案:

答案 0 :(得分:8)

当您调用保存功能时,第一个参数是要保存的数据的对象。而不是仅仅调用model.save(),而是创建一个包含模型数据和额外内容的对象。

在您的方法内部触发保存:

...
var data = this.model.toJSON();
data.extras = { myParam : someData };

this.model.save(data, {success: function( model, response ) {
    console.log('hooray it saved: ', model, response);
});
...