2016-04-01 7 views
16

का उपयोग कैसे करें मैं सोच रहा हूं कि मैं @HostListener का उपयोग कैसे कर सकता हूं। केवल जानकारी मैंने पाया, cheatsheet में था:HostListener

@HostListener('click', ['$event']) onClick(e) {...} 

मैं तत्व यह है कि उपयोगकर्ता ने क्लिक किया गया है लॉग इन करने की कोशिश कर रहा हूँ। मैं उस तरह की कोशिश की है:

@HostListener('click')({ 
    onClick(e) { 
     console.log(e) 
    } 
}) 

लेकिन फिर मैं की कोई त्रुटि प्राप्त:

TypeError: decorator is not a function(…) 

कोई भी विचार?

उत्तर

28

त्रुटि संदेश काफी सटीक है।

@HostListener('click', ['$event']) 
onClick(e) { 
    console.log(e) 
} 
+1

धन्यवाद: एक डेकोरेटर सिर्फ एक समारोह (या एक वर्ग, क्षेत्र, पैरामीटर, ...) बस इसे कोड आप को सजाने के लिए चाहते से पहले डाल सजाने के लिए है! मेरा मुद्दा यह भी था कि मैंने इसे कक्षा के बाहर रखा है। 'ई' को क्यों परिभाषित किया जा सकता है पर कोई विचार? – uksz

+1

कक्षा के बाहर "वैकल्पिक" विकल्प को '@ कॉम्पोनेंट() '(या' @ डायरेक्टिव() 'सजावटी' @Component ({..., होस्ट: {'(क्लिक करें)' पर क्लिक करना है: 'क्लिक करें ($ इवेंट) '})' जो मेरे उत्तर में कोड जैसा ही है। असल में नहीं, अगर 'ऑनक्लिक (ई)' कहा जाता है, तो 'ई' का मूल्य होना चाहिए। क्या आप कृपया कोशिश कर सकते हैं कि '[' $ event .target ']' कोई फर्क पड़ता है? –

+0

जब मैंने $ event.target जोड़ा है, तो यह अपेक्षित काम करता है। – uksz

संबंधित मुद्दे