首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ngx-translate和*ngFor

ngx-translate和*ngFor
EN

Stack Overflow用户
提问于 2017-06-25 17:02:02
回答 2查看 3.3K关注 0票数 2

我有这个代码

代码语言:javascript
复制
<div *ngFor="let service of services">
    <span><img  [src]="service.imgPath" alt="{{ service.name }}"/></span>
    <h4>{{ service.name}}</h4>
    <p>{{ service.desc }}</p>
</div> 

如何翻译每个有3个参数的服务?

在常规情况下,我使用{{ 'something' | translate }},其中"something“被放置在.json文件中

代码语言:javascript
复制
"something" : "translation"

那么如何在ngFor状态下使用它呢?它从.json中读取了一个对象,但没有读取我本例中所需对象数组

EN

回答 2

Stack Overflow用户

发布于 2018-06-15 15:57:42

首先,您需要在app.component.ts中导入ngx-translate:

代码语言:javascript
复制
import { HttpClientModule, HttpClient } from '@angular/common/http';
import { TranslateModule, TranslateLoader } from '@ngx-translate/core';
import { TranslateHttpLoader } from '@ngx-translate/http-loader';
....
export function HttpLoaderFactory(http: HttpClient) {
   return new TranslateHttpLoader(http);
}
...
imports: [
    ...
    TranslateModule.forRoot({
        loader: {
          provide: TranslateLoader,
          useFactory: HttpLoaderFactory,
          deps: [HttpClient]
        }
    })
]
...

然后,您需要在assets下有两个文件,一个用于英语的f.i en.json,另一个用于西班牙语,例如,包含两个对象的es.json。在en.json中:

代码语言:javascript
复制
{
  "something":  "something translation in English"
}

在es.json中:

代码语言:javascript
复制
{
  "something": "something translation in Spanish"
}

然后,在您的组件中包含您提到的代码:

代码语言:javascript
复制
import { TranslateService } from '@ngx-translate/core';
...
constructor(private translate: TranslateService) {
        translate.setDefaultLang('en');
}
....

在模板中:

代码语言:javascript
复制
<div *ngFor="let service of services">
   <span><img  [src]="service.imgPath" alt="{{ service.name }}"/></span>
   <h4>{{service.name | translate}}</h4>
   <p>{{service.desc}}</p>
</div> 

请注意,您的服务对象必须包含字符串形式的内容,以便可以进行转换。

票数 4
EN

Stack Overflow用户

发布于 2017-08-10 18:10:02

代码语言:javascript
复制
use translate.get('jsonKey').subscribe( (response: any)=> {

services = response;


});

注意-//确保您的json结构正确

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44744818

复制
相关文章

相似问题

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