Перевод NGX не инициализируется при горячей перезагрузке (HMR) - PullRequest
0 голосов
/ 28 августа 2018

Я работаю над приложением Angular 6, используя HMR (горячая замена модуля) .

Обычно TranslateService работает как положено. Но когда мой модуль обновляется HMR, сервис не возвращает ожидаемое значение.

Например:

component.ts

translate$: Observable<string[]>;

constructor(translate: TranslateService) {}

ngOnInit() {
  this.translate$ = Object.values(this.translate.instant('property'));
}

component.html

<div *ngFor="translate$ | async as translate">
   {{ translate }}
</div>

en.json

//// i18n:
{
  "property": {
    "sub": "value",
    "sub2:" value2"
  }
}

Когда я впервые инициализирую компонент, все нормально. «значение» и «значение2» отображаются. Но когда я изменяю код в моем компоненте, HMR запускается, и результат this.translate.instant('property') равен просто "property". Я пытался использовать .get(..) вместо instant(...), но у меня такое же поведение.

Если я уничтожу компонент и построю его снова, он будет выглядеть нормально.

Связанные зависимости :

"@angular/cli": "~6.1.5",
"@angularclass/hmr": "^2.1.3",
"@ngx-translate/core": "^10.0.2",
"@ngx-translate/http-loader": "^3.0.1",
...