उपयोगकर्ता कार्रवाई के आधार पर एक ईवेंट ट्रिगर करने के बजाय आप किसी ऑब्जेक्ट में बदलावों को सुन सकते हैं और फिर प्रतिक्रिया दे सकते हैं?क्या किसी ऑब्जेक्ट में बदलावों की निगरानी करने का कोई तरीका है?
उत्तर
ठीक है, जिस डोमेन के साथ आप काम कर रहे हैं उसके आधार पर, आप backbone.js का उपयोग कर सकते हैं - इसमें एक "मॉडल" ऑब्जेक्ट है जिसे आप विस्तारित कर सकते हैं और कॉलबैक से कनेक्ट हो सकते हैं जो मॉडल बदलते समय स्वचालित रूप से ईवेंट द्वारा ट्रिगर किए जाते हैं - वह है, आप मॉडल पर एक फ़ील्ड सेट करते हैं, और यह स्वचालित रूप से एक ऐसी घटना को आग लगा देगा जिसे आप सुन सकते हैं। आपको अपने मॉडल को विस्तारित करने के लिए अपने मॉडल को परिभाषित करना होगा, और गुणों को सीधे सेट करने के बजाय एक सेटर फ़ंक्शन को कॉल करना होगा, लेकिन यह बहुत उपयोगी है, मैं इसकी अनुशंसा करता हूं।
बस स्पष्टता के लिए, को पर मॉडल से निकाल दिया गया है, इसलिए यदि आप प्रोग्रामेटिक रूप से या कंसोल में विशेषता का मान सेट करते हैं तो भी इसे निकाल दिया जाता है।
आप प्रॉपर्टी चेंज पर गेटर्स और सेटर्स ro प्रतिक्रिया का उपयोग कर सकते हैं। जॉन रेजिग ने उनके बारे में article लिखा है।
मैंने ऐसा कुछ लिखा है।
https://github.com/jmoyers/mettle
person.on('name.change', function(val){
// 'a new name was committed: Yolanda'
console.log('a new name was committed: ', val)
});
person.name = 'Yolanda';
https://github.com/jmoyers/mettle/blob/master/src/model.coffee
यह सब स्रोत के माध्यम से खुदाई करने के लिए एक छोटे से ज्यादा हो सकता है। यहां एक स्पष्टीकरण दिया गया है:
मेरी परियोजना के लिए कुंजी दो अवधारणाएं हैं। एक ट्रैक को गुणों का एक सेट रखना और परिभाषित करने वाले प्रत्येक के लिए गेटर्स और सेट्स बनाना है, और परिभाषित करें। दूसरा, आपके सेटर में इन संपत्ति परिवर्तनों के आधार पर EventEmitter और प्रसारण ईवेंट 'subclass' है।
ट्रैक दिखाता है कि मैंने चाबियों के एक सेट के लिए गेटर/सेटटर कैसे स्थापित किया।
Model.prototype.track = function(keys) {
_.each(keys, __bind(function(key) {
this.tracked.push(key);
this.__defineGetter__(key, __bind(function() {
return this.get(key);
}, this));
return this.__defineSetter__(key, __bind(function(val) {
return this.set(key, val);
}, this));
}, this));
return this;
};
यहाँ कैसे एक 'जादू' सेटर के आधार पर प्रसारित करने के लिए की एक उदाहरण है:
Model.prototype.set = function(key, val) {
this.attribs[key] = val;
this.emit('change', this.attribs);
type = key + '.change';
this.emit(type, val);
};
इस सरल उदाहरण से, के बाद से मैं मिश्रण में 'विशेषता मिडलवेयर' की शुरुआत की है, लेकिन यह कैसे पता चलता आप संपत्ति परिवर्तन के आधार पर एक परिवर्तन घटना उत्सर्जित कर सकते हैं।
- 1. क्या पाइथन में किसी ऑब्जेक्ट की वर्तमान रेफ गिनती प्राप्त करने का कोई तरीका है?
- 2. क्या box2dWeb में console.log() पर किसी ऑब्जेक्ट का output.x आउटपुट करने का कोई तरीका है?
- 3. क्या कोई ऑब्जेक्ट कुंजी ऑब्जेक्ट कुंजी के रूप में उपयोग करने का कोई तरीका है?
- 4. क्या नया रिलिक के साथ अपाचे की निगरानी करने का कोई तरीका है?
- 5. क्या कोई ऑब्जेक्ट का स्मृति पता एनएसएसटींग के रूप में प्राप्त करने का कोई तरीका है?
- 6. परिवर्तन के लिए एज़ूर ब्लॉब स्टोरेज में एक कंटेनर की निगरानी करने का सबसे अच्छा तरीका क्या है?
- 7. किसी ऑब्जेक्ट ऑब्जेक्ट से ऑब्जेक्ट कॉन्टेक्स्ट संदर्भ प्राप्त करने का सबसे तेज़ तरीका क्या है?
- 8. एक kqueue() के साथ निर्देशिका में परिवर्तनों की निगरानी करने का सबसे अच्छा तरीका क्या है?
- 9. क्या ऐसा करने का कोई तरीका है?
- 10. क्या CGPoints की तुलना करने का कोई तरीका है?
- 11. क्या जावास्क्रिप्ट में नेमस्पेसिंग करने का कोई "संक्षिप्त" तरीका है?
- 12. जावास्क्रिप्ट में किसी ऑब्जेक्ट के सभी विधियों को मुद्रित करने का कोई तरीका है?
- 13. क्या संपत्तिपाथ वर्ग का उपयोग कर ऑब्जेक्ट का संपत्ति मूल्य प्राप्त करने का कोई तरीका है?
- 14. क्या जावास्क्रिप्ट 'दिनांक' ऑब्जेक्ट में 21 अक्टूबर 2012 का प्रतिनिधित्व करने का कोई तरीका है?
- 15. क्या एएनटी में ग्रिड उत्पन्न करने का कोई तरीका है?
- 16. क्या जावास्क्रिप्ट ऑब्जेक्ट में अक्षीय कुंजी का उपयोग करने का कोई तरीका है?
- 17. क्या सभी समय बहिष्कृत करने का कोई तरीका है?
- 18. क्या किसी विधि को पारित तर्कों की सरणी प्राप्त करने का कोई तरीका है?
- 19. क्या कोई जेड-इंडेक्स सर्कल करने का कोई तरीका है?
- 20. क्या कोई क्लाइंट वेब पेज पर खर्च करने की अवधि निर्धारित करने का कोई तरीका है
- 21. जावा प्रोग्राम के सिस्टम सिस्टम की निगरानी करने का सबसे अच्छा तरीका क्या है?
- 22. क्या किसी DOCX फ़ाइल की थंबनेल छवि उत्पन्न करने का कोई तरीका है?
- 23. क्या किसी खंड में `exec` का उपयोग करने का कोई तरीका है?
- 24. किसी भी पाठ संपादक में ऐसा करने का कोई तरीका?
- 25. क्या क्रोम देव टूल्स में अंतिम लॉग ऑब्जेक्ट से बातचीत करने का कोई तरीका है?
- 26. किसी कन्स्ट्रक्टर में मौजूदा ऑब्जेक्ट के पॉइंटर/संदर्भ को पारित करने का पसंदीदा तरीका क्या है?
- 27. क्या सभी संबंधित_तो एसोसिएशन सूचीबद्ध करने का कोई तरीका है?
- 28. रूबी में किसी तृतीय पक्ष ऑब्जेक्ट को नकल करने का सबसे अच्छा तरीका क्या है?
- 29. क्या कोई लेबल अक्षम करने का कोई तरीका है?
- 30. क्या Python में किसी अंश का दोहराव दशमलव भाग प्राप्त करने का कोई तरीका है?
http://stackoverflow.com/questions/1029241/javascript-object-watch-for-all-browsers –