Backbone.js - 更改期间的模型集

时间:2014-06-20 08:09:13

标签: backbone.js

我想在"更改"期间做模特.set(...)事件 - 某些模型属性必须同步:例如我有一个可以涵盖许多产品的预算,但如果我改变预算,必须更新产品数量,反之亦然。我试过禁用"更改"事件(即model.off(' change');)然后在model.set(...)之后启用它,即model.on(' change',callbackFunction); ,但我仍然调用了更改事件处理程序/回调。

更改处理程序/回调中更新模型的最佳方法是什么?

2 个答案:

答案 0 :(得分:2)

您可以使用静默标记

传递options对象
this.model.set({someKey:25}, {silent: true});

没有change事件

答案 1 :(得分:1)

您可以控制设置模型并对其“保持沉默”。因此,如果您想设置某些内容而不是调用更改,则需要添加silent: true,例如:

model.set('budget', '$12.34', { silent: true })

您也可以在change上具体说明。所以说你的其他模型之一需要只听取“预算总额”。您只需听取预算总额的变化:

modelOne.listenTo( modelTwo, 'change:budgetTotal', function( modelTwo, value ){ 
  this.set('budgetTotal', value ); 
});