2016-03-09 5 views
0

Как вы получаете HostListener, работающий в старом добром ES6. В настоящее время есть ...Angular2 hostlistener

import { Directive, HostListener }    from 'angular2/core'; 

@Directive({ 
    selector: 'focusable', 
    hostListeners: { 
     'focus' : 'focus()', 
     'click' : 'click()' 
    } 
}) 
export class FocusableComponent { 
    constructor(){ 
     console.log('constructed'); 
    } 

    focus() { 
     console.log('Im focused'); 
    } 

    click() { 
     console.log('ive been clicked'); 
    } 
} 

Из того, что я мог бы сделать из Документов ... это, кажется, как люди сделали это, но не работает для меня!

ответ

1

Вы должны сделать это так:

@Directive({ 
    selector: '[focusable]', 
    host: { 
    '(focus)' : 'focus()', 
    '(click)' : 'click()' 
    } 
}) 
export class FocusableComponent { 
    constructor(){ 
    console.log('constructed'); 
    } 

    focus() { 
    console.log('Im focused'); 
    } 

    click() { 
    console.log('ive been clicked'); 
    } 
} 

Смотрите эту plunkr: https://plnkr.co/edit/pBxcqP25JTLTzKY2AwyP?p=preview.

+0

Как отменить подписку на слушателя при создании таким образом? – oooyaya

Смежные вопросы