首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ngx-translate:重新加载时不显示翻译

ngx-translate:重新加载时不显示翻译
EN

Stack Overflow用户
提问于 2017-11-03 16:40:00
回答 2查看 2K关注 0票数 5

在我的webapp中,我使用ngx-translate模块进行本地化。对于我使用管道翻译的html字符串,它工作得很好。我在我的ts组件中翻译字符串时遇到了问题。字符串得到翻译,但如果我重新加载页面,它们是空字符串,如果我转到应用程序中的其他页面并返回,它们又是正常的。我已经定义了方法:

代码语言:javascript
复制
public getTranslation(key: string){
    let str="";
    this.translate.get(key).subscribe(value => {str = value});
    return str;
}

因此,当我定义变量时,我使用:

代码语言:javascript
复制
variable: string = this.getTranslation("key-in-my-json-file")

我在app.module中的配置,加载器:

代码语言:javascript
复制
export function createTranslateLoader(http: HttpClient) {
  return new TranslateHttpLoader(http, './assets/i18n/', '.json');
}

在导入中:

代码语言:javascript
复制
TranslateModule.forRoot({
  loader: {
    provide: TranslateLoader,
    useFactory: (createTranslateLoader),
    deps: [HttpClient]
  }
})

我在package.json中的版本:

代码语言:javascript
复制
"@ngx-translate/core": "^8.0.0",
"@ngx-translate/http-loader": "^1.0.2",
"typescript": "2.5.2"

和angular版本4.3.6

EN

回答 2

Stack Overflow用户

发布于 2019-08-28 11:15:40

尝试使用localStorage。例如,当我更改语言时,我在函数中使用它:

代码语言:javascript
复制
public changeLanguage(lang) {
  this.languageActive = lang;
  this.translateService.use(lang);
  localStorage.setItem("language", this.languageActive);
}
票数 0
EN

Stack Overflow用户

发布于 2017-11-03 18:55:41

用最小的超时包围这条线,然后它就会起作用。

代码语言:javascript
复制
setTimeout(()=> {
          variable: string = this.getTranslation("key-in-my-json-file");  
}, 500);
票数 -2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47091510

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档