DataGrid не входит в контекст «this» в области подписки в Angular - PullRequest
1 голос
/ 30 мая 2020

В моем проекте Angular страница включает 2 компонента с именами «head» и «product» ..

В «head» я могу изменить валюту страницы .. Я сохраняю информацию о валюте в localStorage .. При изменении валюты я получаю sh случайное число с помощью «следующего», как показано ниже:

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();
   });
}

При отладке внутри области подписки, контекст «this» не содержит gridProduct, gridPrice и linensOfferId. Таким образом, он не может получить экземпляр «undefined»…

Как я могу получить экземпляр этих сеток внутри области подписки?

Заранее спасибо ...

1 Ответ

0 голосов
/ 31 мая 2020

Я решил эту проблему. Событие 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 ()…

Спасибо ...

...