Kiedy zmienia się mój "chartModel", chcę zaktualizować "globalModel".Make Backbone.js Model zmienić "częściowo" cichy?
chartModel.bind("change", updateGlobalModel);
updateGlobalModel(){
globalModel.set(obj)
}
I vice versa, chcę, aby mój chartModel aktualizował się, gdy zmienił się model globalModel.
globalModel.bind("change", updateChartModel);
updateChartModel(){
chartModel.set(obj)
}
Powoduje to pętlę sprzężenia zwrotnego podczas ustawiania modułu globalnego. Mógłbym temu zapobiec, ustawiając {cichy: prawdziwy}.
Ale tu pojawia się problem. Mam inny model, który jest zależny od zdarzenia change:
globalModel.bind("change", updateOtherModel);
Jak mogę zaalarmować ten model zmiany, ale nie były jednym (aby uniknąć sprzężenia zwrotnego)?
UPDATE:
Na razie postanowiłem wygenerować konkretny identyfikator dla każdego zestawu rozmowy:
set : function(attrs, options) {
if(!("setID" in attrs)){
attrs.setID = myApp.utils.uniqueID(); //newDate.getTime();
}
Backbone.Model.prototype.set.call(this, attrs, options);
},
ten sposób, zawsze mogę wygenerować „setID” atrybut z dowolnego miejsca w moim podanie. Jeśli setID jest taki sam podczas pobierania czegoś z modelu, wiem, że może istnieć ryzyko dla pętli sprzężenia zwrotnego.
Dzięki za sugestię - wypróbuję, jeśli moje obejście się nie powiedzie (zaktualizowałem moje pytanie.) – dani