16
Zastanawiam się, jak mogę użyć @HostListener
. Jedynym informacji znalazłem, był w cheatsheet:Jak używać HostListener
@HostListener('click', ['$event']) onClick(e) {...}
Próbuję zalogować element, który użytkownik kliknął. Próbowałem tak:
@HostListener('click')({
onClick(e) {
console.log(e)
}
})
Ale wtedy otrzyma błąd:
TypeError: decorator is not a function(…)
jakieś pomysły?
Dzięki! Mój problem polegał na tym, że umieściłem go poza klasą. Wszelkie pomysły na pytanie, dlaczego "e" może być nieokreślone? – uksz
Alternatywą "poza" klasą jest dodanie jej do dekoratora '@Component()' (lub '@Directive()' jak '@Component ({..., host: {'(kliknij)': 'onClick ($ event) '}) ', który robi to samo, co kod w mojej odpowiedzi.Tak właściwie nie, jeśli' onClick (e) 'jest wywoływane,' e' powinno mieć wartość. Czy możesz spróbować, jeśli '[' $ event .target '] 'robi jakąkolwiek różnicę? –
Po dodaniu $ event.target działa zgodnie z oczekiwaniami – uksz