Когда меня изменяет «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:
На данный момент, я решил сформировать конкретный идентификатор для каждого набора вызова:
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