Javascript 使用backbone.js在保存请求中发送额外的非模型数据?
我正在寻找一种解决方案,使用backbone.js处理模型之间的状态问题 我有一个时间跟踪应用程序,用户可以启动/停止作业,它会记录作业的工作时间。我有一个工作模型,它保存了工作的数据以及当前是否“打开” 一次只能处理一个作业。因此,如果用户启动作业,则必须停止当前正在运行的作业。我想知道最好的解决办法是什么。我的意思是,我可以简单地相应地切换每个作业的“on”参数,然后在每个作业上调用save,但这会导致向服务器发出两个请求,每个请求都包含每个作业的完整表示 理想情况下,如果我能在save请求中携带额外的数据,就像在fetch请求中发送额外数据一样,那就太好了。我只需要发送当前正在运行的作业的id,因为这实际上与模型无关,所以它需要与模型一起发送,而不是模型的一部分Javascript 使用backbone.js在保存请求中发送额外的非模型数据?,javascript,rest,backbone.js,Javascript,Rest,Backbone.js,我正在寻找一种解决方案,使用backbone.js处理模型之间的状态问题 我有一个时间跟踪应用程序,用户可以启动/停止作业,它会记录作业的工作时间。我有一个工作模型,它保存了工作的数据以及当前是否“打开” 一次只能处理一个作业。因此,如果用户启动作业,则必须停止当前正在运行的作业。我想知道最好的解决办法是什么。我的意思是,我可以简单地相应地切换每个作业的“on”参数,然后在每个作业上调用save,但这会导致向服务器发出两个请求,每个请求都包含每个作业的完整表示 理想情况下,如果我能在save请求
有什么好办法吗?如果需要,我想我可以找到一种方法来维护对当前作业服务器端的引用:\当调用save函数时,第一个参数是要保存的数据的对象。不要只调用
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);
});
...
需要注意的是,虽然这会发送额外的非模型数据,但它会在模型上设置数据,然后成为模型数据。就像在我的例子中一样,您可能不希望这样,只希望在请求中发送1或2个不适用于模型的额外参数。您需要
this.model.unset('foo',{silent:true})
然后删除附加的properties@ryanmarc但是,这可以发送额外的数据,但这不是一种用模型发送数据的好方法。@RobinsGupta没有评论2年以上的答案是不正确的,为什么不添加一个更新的答案呢?2012年,主干网的状态与今天大不相同。