2016-07-29 61 views
0

我希望为组件变量分配回调函数...例如,将回调函数分配给变量并在高阶函数之外调用

... 
export class MyComponent { 
     private myCompVar: any; 

     myFunc = function(callback: (number) => void): void { 
       this.myCompVar = callback; 
     } 
} 

...然后在MyComponent中的另一个函数中稍后调用此回调函数。例如: -

... 
export class MyComponent { 
     private myCompVar: any; 
     ... 
     myOtherFunc(event): void { 
       ... 
       this.myCompVar(callbackParam); 
     } 
} 

然而,当我实现这个类似上面,一个错误发生时说,“this.myCompVar”是不确定的,当我试图把它里面“myOtherFunc”。这让我感到困惑,因为我已经确认回调在'myFunc'中被正确设置,并且它的类型是'function'。 'myOtherFunc'在调用'myFunc'之后也会调用,并按预期返回。

任何帮助非常感谢!

回答

2

通过使用function您正在丢失正确的this上下文。我会建议使用Lambda(脂肪箭头功能)来代替,其正确结合向右this背景:

myFunc = (callback: (number) => void): void => { 
    this.myCompVar = callback; 
} 
+0

圣牛,它的工作完美! Rinukkusu,你是一个天才和一个学者。非常感谢!有一个非常棒的一天。 –

+0

哈哈,没问题 - 你也一样! :) – rinukkusu

相关问题