DataGrid 未包含在 Angular 订阅范围内的 "this" 上下文中

DataGrid is not included inside of "this" context in subscribe scope in Angular

在我的 Angular 项目中,一个页面包含 2 个组件,分别名为 "head" 和 "product"..

在"head"中,我可以更改页面的货币。我将货币信息保存在localStorage中。当更改货币时,我通过"next"推送一个随机数,如下所示:

this.service.refreshNumberOfAllPriceByCurrency.next(Math.random()); //"refreshNumberOfAllPriceByCurrency" is defined as ReplaySubject<any>(1) in service component.

此行在 "product" 组件中触发订阅,如下所示:

constructor(.........)
{
   this.service.refreshNumberOfAllPriceByCurrency.subscribe(number => {
        this.gridProduct.instance.refresh();
        this.gridPrice.instance.refresh();
   });
}

在订阅范围内调试时,"this" 上下文不包含 gridProduct、gridPrice 和 linensOfferId。所以它无法获取 "undefined"...

的实例

如何在订阅范围内获取这些网格的实例?

提前致谢...

我解决了这个问题。 "this.service.refreshNumberOfAllPriceByCurrency.subscribe()" 事件在构造函数中。我修改了代码如下:

constructor()
{
   var this2=this;

   this.service.refreshNumberOfAllPriceByCurrency.subscribe(number => {
       if (this2.linensOfferId > 0) {
           this2.gridProduct.instance.refresh();
           this2.gridPrice.instance.refresh();
       }
   });
}

在subscribe()之前,我定义了this2,它等于"this"。通过这种方式,我可以从 subscribe() 范围内完全访问这个上下文…

谢谢...