DataGrid不包含在Angular的订阅范围内的“ this”上下文中

问题描述 投票:1回答:1

在我的Angular项目中,一个页面包含2个名为“ head”和“ product”的组件。

在“ head”中,我可以更改页面的货币。.我将货币信息保留在localStorage中。

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

此行将触发“产品”组件中的订阅,如下所示:

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

在订阅范围内进行调试时,“此”上下文不包含gridProduct,gridPrice和linensOfferId。因此它无法获取“未定义”的实例…

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

提前感谢...

[在我的Angular项目中,一个页面包括2个分别名为“ head”和“ product”的组件。在“ head”中,我可以更改页面的货币。.我将货币信息保存在localStorage中。 ..

angular observable instance subscribe
1个回答
0
投票

我解决了这个问题。 “ 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();
       }
   });
}
© www.soinside.com 2019 - 2024. All rights reserved.