refactor(Directives): Directives use NgElement to register events.