मैं http://rectangleworld.com/demos/SimpleDragging/SimpleDragging के समान एक सरल कैनवास ड्रैग एन ड्रॉप एप्लिकेशन बना रहा हूं। माउसवेवेंट श्रोताओं के लिए, मैंने @ होस्टलिस्टर का उपयोग किया क्योंकि मेरे लिए यह सरल वाक्यविन्यास है और यह काम कर रहा है। Renderer.listen के साथ इसे प्राप्त करने का एक और तरीका है। लेकिन मैं इसे होस्टलिस्टर पर उपयोग करने का फैसला नहीं कर सकता। क्या कोई समझा सकता है और बता सकता है कि @HostListener
और Renderer.listen
के बीच कौन सा बेहतर है?@HostListener और Renderer.listen के बीच कौन सा बेहतर है?
उत्तर
मेरा उत्तर शायद सबसे अच्छा नहीं हो सकता है लेकिन मुझे यह मिला है।
Renderer.listen()
यह Renderer.listen()
की बात आती है जब आप Element
आप पता लगाने के लिए चाहते हैं, तो Event
को सुनने के लिए (click
, keydown
, keyup
, आदि पारित करने के लिए की जरूरत है) और अंत में कॉलबैक Function
कोड में,में क्या हुआसमारोह (*):
listen(renderElement: any, name: string, callback: Function): Function {
return this._rootRenderer.eventManager.addEventListener(renderElement, name, decoratePreventDefault(callback));
}
तो समस्या अब बस को निर्दिष्ट किया जाएगा Element
(आसान), लेकिन लोगों को आम तौर elementRef.nativeElement
जो एक सुरक्षा जोखिमAngular Documentation के अनुसार, तो यह प्रयोग करने से पहले सुनिश्चित हो है का उपयोग !. एक और समस्या (वास्तव में नहीं) यह है कि Renderer
कक्षा प्रायोगिक है (Check its Documentation), मुझे setText()
के साथ समस्या का सामना करना पड़ा, यह आरसी में काम करता था लेकिन अब यह नहीं है .. तो हाँ Renderer
कार्यक्षमताओं का उपयोग करने से पहले अच्छी तरह से परीक्षण करें। aaaaaaand जब आप कर लेंगे तो आपको मैन्युअल रूप से ईवेंट को अनइंड करना होगा !, Check this answer for more।
लेकिन मैं Renderer
स्थिति पर नजर रखूंगा क्योंकि इसका मुख्य उद्देश्य किसी भी पर्यावरण (वेब, नोड, मोबाइल, .etc) पर तत्वों को एक कोड आधार के साथ प्रस्तुत कर रहा है, इसलिए हाँ आशा है कि यह स्थिर हो जाए भविष्य।
@HostListener()
HostListener
एक महान डेकोरेटर है और दिखाता है कि कैसे महान Angular2 टाइपप्रति साथ काम करता है, आप केवल घटना और (इसके तहत समारोह) कॉलबैक समारोह के लिए पारित करने के लिए मूल्य निर्धारित करने की आवश्यकता , और आम तौर पर लोग [$event]
पास करते हैं ताकि आप फ़ंक्शन के अंदर सत्यापन पर अधिक नियंत्रण प्राप्त कर सकें और हां आपको Element
सेट करने की आवश्यकता नहीं है क्योंकि यह document
पर सुनता है, इसलिए यह ईवेंट में delegation
कर रहा है और आप एक्सेस नहीं करते हैं DOM
और आपका ऐप सुरक्षित हो जाएगा। इसके अलावा आपको घटनाओं को अनदेखा करने की आवश्यकता नहीं है, कोणीय आपके लिए यह करेगा।
Check this article for a working example
आशा है कि मेरा उत्तर मदद, कोणीय अभी भी विकसित हो रहा है तो कुछ चीजें बदल सकता है याद है।
संदर्भ:
*: Hacking Angular2: Binding Multiple DOM Events by Sean T. Larkin
- 1. कौन सा बेहतर है?
- 2. टेक्स्टव्यू या वेबव्यू के बीच कौन सा बेहतर है?
- 3. कौन सा स्ट्रिंग ऑपरेशन बेहतर है?
- 4. कौन सा मशीनकी कॉन्फ़िगरेशन बेहतर है?
- 5. AJAX और jquery के बीच क्या अंतर है और कौन सा बेहतर है?
- 6. कौन सा बेहतर पैरामीटर या सूची है
- 7. बेहतर डेटाबेस डिज़ाइन कौन सा है?
- 8. कौन सा बेहतर है, ईटीएल या ईएलटी?
- 9. कौन सा बेहतर है? OpenCyc या ConceptNet?
- 10. कौन सा जावास्क्रिप्ट फ़ंक्शन प्लेसमेंट बेहतर है?
- 11. PHP में बेहतर प्रदर्शन कौन सा है?
- 12. बेहतर यूनिकोड सामान्यीकरण फ़ॉर्म कौन सा है?
- 13. कौन सा संस्करण स्ट्रिंग रिवर्स बेहतर है?
- 14. टीआर 1 - कौन सा बेहतर है?
- 15. कौन सा बेहतर पैकेज डिज़ाइन है?
- 16. कौन सा बेहतर है - PyInstaller या cx_Freeze?
- 17. फेसबुक Likebox कौन सा कोड बेहतर है
- 18. कौन सा बेहतर है, नागियोस या सेंसू?
- 19. कौन सा बेहतर BOOST_MPL_ASSERT या BOOST_STATIC_ASSERT है?
- 20. SQL सर्वर डेटाबेस में सबसे आम आईडी प्रकार कौन सा है, और कौन सा बेहतर है?
- 21. पार्स, फायरबेस और एडब्ल्यूएस कॉग्निटो के बीच उपयोगकर्ता के लिए कौन सा बेहतर है?
- 22. स्थिर var और गुजरने वाले ऑब्जेक्ट पैरामीटर का उपयोग करने के बीच कौन सा बेहतर है?
- 23. एक पाठक संशोधक और एक निजी सेटर के बीच कौन सा बेहतर है?
- 24. कौन सा जावास्क्रिप्ट खनन पुस्तकालय बेहतर परिणाम उत्पन्न करता है?
- 25. विंडोज के लिए कौन सा बेहतर है? pthreads या CreateMutex?
- 26. ब्लैकबेरी अनुप्रयोग विकास के लिए कौन सा बेहतर उपकरण है?
- 27. Django सामाजिक प्रमाणीकरण के लिए कौन सा समाधान बेहतर है?
- 28. जावा/जीडब्ल्यूटी या स्कैला/लिफ्ट बेहतर फ्रेमवर्क कौन सा है?
- 29. कौन सा बेहतर जावास्क्रिप्ट वस्तु पैटर्न
- 30. पाइथन, डेल या डेलट्रर में कौन सा बेहतर है?
'nativeElement' एक समस्या (सुरक्षा या अन्यथा) Render2 के साथ प्रयोग किया है, तो नहीं है। आपके द्वारा लिंक किए गए कोणीय डॉक्स पेज पर शेष चेतावनी देखें। – TimTheEnchanter