typescript ngx-翻译:检测更改语言的事件(Angular )

rqcrx0a6  于 2022-12-19  发布在  TypeScript
关注(0)|答案(2)|浏览(108)

我想使用ngx-translate库检测“当前语言”的切换。
我可以使用哪个js事件来实现这一点?
为了更好地理解我的意思,请查看这个简单的例子:https://stackblitz.com/edit/github-yvbmgu
我想从ngOnInit()上的“diff”组件检测currentLang的变化。

dgsult0t

dgsult0t1#

您可以订阅TranslateService的onLangChange observable来监听语言更改事件。

ngOnInit() {
      console.log(this.translate.currentLang);
      this.translate.onLangChange.subscribe((event: LangChangeEvent) => {
        console.log(event.lang);
      });
    }

翻译服务API

deyfvvtc

deyfvvtc2#

您也可以使用Angular自己的BehaviorSubject来检测语言变化。
在一般服务中编写此代码:

public langObsevable: BehaviorSubject<string> = new 
       BehaviorSubject<string>(null);

   public onLanguageChanged(lang:string){
     this.langObsevable.next(lang);
   }

现在,您可以通过订阅在其他组件中应用语言更改,如下所示

this.generalService.langObsevable.subscribe(res => {
     translate.use(res);
  });

相关问题