ngx-translate this.translate.onLangChange在路由更改期间不起作用

时间:2018-04-15 14:09:21

标签: angular-router ngx-translate

我在我的角应用程序中使用ngx-translate。我正在动态地将数组值更改为键并从es.josn文件中动态获取转换值。当应用程序第一次加载时它工作正常。但问题是当我改变路线并再次回到这条路线时 以下工作正常意味着我正在获取数据。

this.assetOnboardingService.getAssetType().subscribe(
      (data) => {

});

但是在订阅内部没有工作,意味着translate.onLangChange没有触发任何事件:

 this.langChange = this.translate.onLangChange.subscribe((event:LangChangeEvent) => {
 let avilableaAssetType:AssetType[] = [];
            if (data) {
              data.forEach(assettype => {
                let model = new AssetType(assettype.name, assettype.status);
                avilableaAssetType.push(model);
              });
            }
            avilableaAssetType.forEach(data => {
              let name=this.sentenceToKey(data.name);
              this.translate.get(name).subscribe(res => {
                this.avilableaAssetType.push({
                  name: res,
                  status:data.status});

              });

            });

          });

完整的代码在这里:

 this.assetOnboardingService.getAssetType().subscribe(
      (data) => {
        console.log("after route chnage it is working");

this.langChange = this.translate.onLangChange.subscribe((event:LangChangeEvent) => {
           console.log("after route chnage it is NOT working");


            let avilableaAssetType:AssetType[] = [];
            if (data) {
              data.forEach(assettype => {
                let model = new AssetType(assettype.name, assettype.status);
                avilableaAssetType.push(model);
              });
            }
            avilableaAssetType.forEach(data => {
              let name=this.sentenceToKey(data.name);
              this.translate.get(name).subscribe(res => {
                this.avilableaAssetType.push({
                  name: res,
                  status:data.status});

              });

            });

          });



      }
    );

0 个答案:

没有答案