मैं हाल ही में हमारी अगली परियोजना के लिए उपयोग किए जाने वाले जावास्क्रिप्ट ढांचे का मूल्यांकन कर रहा हूं। मुझे वास्तव में एम्बर पसंद है। लेकिन हमारे आवेदन में, हमें डेटा परत से एक ईवेंटिंग तंत्र की आवश्यकता होगी ताकि नियंत्रक परत को सूचित किया जा सके कि कुछ बदल गया है। मैं एक एंबर में obersevers इस्तेमाल कर सकते हैं, उदाहरण के ,:क्या एम्बरजे प्रकाशित/ग्राहक घटना पैटर्न का समर्थन करते हैं?
person.addObserver('fullName', function() {
// deal with the change
});
के लिए जानते हैं लेकिन मैं Backbone.Events कि आप सदस्यता या एक घटना प्रकाशित कर सकता में और अधिक पसंद है, विशेष रूप से:
var object = {};
_.extend(object, Backbone.Events);
object.on("alert", function(msg) {
alert("Triggered " + msg);
});
object.trigger("alert", "an event");
किसी एक विचार है क्या यह एम्बरजेएस में करने योग्य है?
आपको मेरे प्रश्न के बारे में कुछ पृष्ठभूमि देने के लिए, हमारा आवेदन एक वास्तविक समय का आवेदन है। तो समय-समय पर, बैकएंड रीस्टफुल सेवा क्लाइंट साइड (जावास्क्रिप्ट साइड) में एक ईवेंट को आग लग जाएगी। मैं एक डेटा लेयर रखना चाहता हूं जो बैकएंड रीस्टफुल सेवा तक पहुंच को समाहित करता है, लेकिन कैश भी रखता है। मुझे आशा है कि EmberJS.Data मुझे इसके साथ मदद कर सकता है (यह एक अलग सवाल है जिसे मैं जवाब ढूंढना चाहता हूं)। इसके साथ ही, जब भी बैकएंड रीस्टफुल सेवा से कोई परिवर्तन हुआ तो मैं भी कैश को अद्यतन करना चाहूंगा। एक बार कैश ऑब्जेक्ट अपडेट हो जाने पर, मैं नियंत्रक परत को अधिसूचित करना चाहता हूं। यह मूल रूप से जावास्क्रिप्ट पक्ष में कुछ घटना तंत्र की आवश्यकता क्यों है।
ध्यान दें कि कारण मैं पर्यवेक्षकों का उपयोग नहीं करना चाहता हूं कि कभी-कभी, एक घटना का मतलब यह हो सकता है कि मुझे कोई कार्रवाई करनी है, यानी एक संदेश लोड करना है, या संकेत है कि एक आवाज कॉल आ रही है। रीढ़ की हड्डी के रास्ते मेरे लिए अधिक natuarl लगता है।
धन्यवाद
मैं अपने समाधान का उपयोग कर एक घटना से कैसे सदस्यता समाप्त होगा? – Parzifal
@Parzifal, "सदस्यता" के समान "सदस्यता रद्द करें" विधि जोड़ें जो "ऑन" के बजाय http://emberjs.com/api/classes/Ember.Evented.html#method_off पर कॉल करता है। इसके बाद आप इसे 'App.Hub.unsubscribe (' test-start ')' का उपयोग कर सकते हैं। – digitalbreed