我正在编写outlook外接程序(在角5中),我正在实现一个可定位的任务窗格,我一直在跟踪Microsoft:在Outlook中实现pinnable任务窗格的文档。
我想要做的是,当Outlook中选定的邮件被更改时,我需要更新任务窗格UI的内容。
在我的Component.TS上添加了以下addHandlerSync事件侦听器,用于邮件选择上的更改:
ngOnInit() {
Office.context.mailbox.addHandlerAsync(Office.EventType.ItemChanged, this.selectMailChanged);
}
selectMailChanged(){
this.getPhoneNumbers() //This function gets phone numbers on the email
}以上代码的错误是
this.getPhoneNumbers is not defined。
我尝试将这个this.getPhoneNumbers封装在区域(基于MS文档:触发UI更新)上,但它没有定义返回zone.run。
如何在addHandlerAsync回调中调用角分量方法?
发布于 2020-01-26 16:06:42
好的老著名的this关键词问题。
由于上下文的差异,您得到了错误消息。在编写代码时,方法selectMailChanged引用组件中的方法getPhoneNumbers (我希望它已经实现)。因此,从编码的角度看,它看起来很好。
但是当事件启动时-它不再有组件的上下文了,因为它只是调用一个回调函数-所以它实际上没有所有外部世界的信息,除了它正在调用的函数。你可以在下面读到一些很好的答案:
将getPhoneNumbers中的功能移到回调方法中,您就不会遇到这个问题。
https://stackoverflow.com/questions/59908359
复制相似问题