当我的“chartModel”发生变化时,我想更新“globalModel”。让Backbone.js模型变“部分”沉默?
chartModel.bind("change", updateGlobalModel);
updateGlobalModel(){
globalModel.set(obj)
}
反之亦然,我希望我的chartModel在globalModel更改时更新。
globalModel.bind("change", updateChartModel);
updateChartModel(){
chartModel.set(obj)
}
设置globalModel时会产生反馈循环。我可以通过设置{silent:true}来防止这种情况。
但是问题来了。我有另一种模式是依赖于改变事件:
globalModel.bind("change", updateOtherModel);
我怎么能提醒这个变化的模型,但不是前一个(以避免反馈回路)?
UPDATE:
现在,我决定为每一个集合呼叫特定ID:
set : function(attrs, options) {
if(!("setID" in attrs)){
attrs.setID = myApp.utils.uniqueID(); //newDate.getTime();
}
Backbone.Model.prototype.set.call(this, attrs, options);
},
这样一来,我可以随时生成从任何地方“SETID”属性我应用。如果在从模型中获取某些东西时setID仍然相同,我知道可能存在反馈循环的风险。
感谢您的建议 - 如果我的解决方法失败,我会尝试一下(我更新了我的问题。) – dani