2017-06-07 58 views
0

我有一個回調,我想由多個事件觸發。我試過如何將現有回調的引用傳遞給@HostListener?

userIsActive(){ 
    //do something 
} 
@HostListener('document:mousemove') this.userIsActive; 
@HostListener('document:keypress') this.userIsActive; 
@... 

但它不起作用,duplicate identifier 'userIsActive'。我知道我可以定義新的函數回調,

@HostListener('document:mousemove') foo1(){ userIsActive(); }; 
@HostListener('document:keypress') foo2(){ userIsActive(); }; 
@... 

但創建任意數字的2個新功能似乎是不必要的,可讀性較差。有沒有辦法將現有回調的引用傳遞給@HostListener

回答

2

沒有必要定義多個方法,您可以多次修飾相同的方法。

例如:

@HostListener('window:keyup') 
    @HostListener('window:keydown') 
    handle() { 
    console.log('happened') 
    } 
+0

這在技術上不回答這個問題,但它不夠好,我的目的。對於未來最終結局的人,有沒有辦法引用現有的功能呢? – adamdport

+0

這就是你如何多次引用它,你多次寫一次並裝飾它,或者你的意思是你自己不寫的函數?可能來自另一個班級或圖書館的東西? – toskv

+0

是的,從任何導入引用一個函數,是否可以完成? – adamdport