Когда я перезагружаю страницу, чтобы изменить язык страницы с помощью ngx-translate несколько раз, моя подписка OnLangChange не срабатывает - PullRequest
0 голосов
/ 06 ноября 2018

Я перезагружаю страницу, чтобы сменить язык с этим кодом в компоненте-обертке, который по сути является моей панелью навигации:

changeLanguage(language: string) {
  const url = this.router.url.replace(new RegExp('(\/de\/|\/fr\/|\/it\/)', 
  'g'), '/' + language + '/');
  this.router.navigateByUrl(url);
}

в моем компоненте у меня есть этот код:

this.router.routeReuseStrategy.shouldReuseRoute = function() {
  return false;
};

Чтобы страница полностью перезагружалась при смене языка, и я могу использовать ngOnInit при переходе по тому же URL-адресу.

В моей функции ngOnInit у меня есть следующий код:

ngOnInit() {
  this.subscription = this.translate.onLangChange.subscribe(x => {
    console.log('in subscription');
    this.service.getIngredients().subscribe(ingredients => {
       // stuff
    });
    // get all tea-types
    this.service.getTeas().subscribe(teas => {
       // stuff
    });
  });
}

Я отменяю подписку на эту подписку, когда вызывается ngOnDestroy. Всякий раз, когда я перезагружаю страницу более одного раза, подписка вообще не вызывается, даже если вызывается мой ngOnInit. Что я могу сделать, чтобы сделать эту работу?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...