जब मेरा "चार्ट मॉडल" बदलता है तो मैं "ग्लोबल मॉडेल" को अपडेट करना चाहता हूं।Backbone.js मॉडल बदलें "आंशिक रूप से" चुप?
chartModel.bind("change", updateGlobalModel);
updateGlobalModel(){
globalModel.set(obj)
}
और इसके विपरीत, मैं चाहता हूं कि ग्लोबल मॉडल बदलते समय मेरा चार्ट मॉडल अपडेट करें।
globalModel.bind("change", updateChartModel);
updateChartModel(){
chartModel.set(obj)
}
ग्लोबल मॉडल सेट करते समय यह फीडबैक लूप में परिणाम देता है। मैं इसे {silent: true} सेट करके रोक सकता हूं।
लेकिन यहां समस्या आती है।
globalModel.bind("change", updateOtherModel);
मैं परिवर्तन के इस मॉडल कैसे अलर्ट कर सकते हैं लेकिन नहीं पूर्व एक (प्रतिक्रिया पाश से बचने के लिए): मैं एक और मॉडल है कि परिवर्तन घटना पर निर्भर है है?
अद्यतन:
अभी के लिए, मैं प्रत्येक सेट कॉल के लिए एक विशिष्ट आईडी उत्पन्न करने के लिए फैसला किया:
set : function(attrs, options) {
if(!("setID" in attrs)){
attrs.setID = myApp.utils.uniqueID(); //newDate.getTime();
}
Backbone.Model.prototype.set.call(this, attrs, options);
},
इस तरह, मैं हमेशा में कहीं से भी एक "setID" विशेषता उत्पन्न कर सकते हैं मेरे आवेदन। यदि मॉडल से कुछ प्राप्त करते समय सेटआईडी अभी भी वही है, तो मुझे पता है कि फीडबैक लूप के लिए जोखिम हो सकता है।
आपके सुझाव के लिए धन्यवाद - अगर मेरा कामकाज विफल रहता है तो मैं इसे आज़माउंगा (मैंने अपना प्रश्न अपडेट किया है।) – dani