當我的「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