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() 范围内完全访问这个上下文…
谢谢...
在我的 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() 范围内完全访问这个上下文…
谢谢...