出于某种原因,我的Angular 5项目似乎将整个http响应拉入了translationService。有没有人经历过这个?这是一个HttpClient问题吗?
正如您在附图中看到的那样,json内容位于_body
属性中,这是不正确的。对我来说,似乎HttpClient在某个地方与{observe: 'response'}
一起使用。 ref.
app.module.ts
import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
import { HttpClientModule, HttpClient } from '@angular/common/http';
import { TranslateModule, TranslateLoader } from '@ngx-translate/core';
import { TranslateHttpLoader } from '@ngx-translate/http-loader';
import { AppComponent } from './app.component';
export function HttpLoaderFactory(http: HttpClient) {
return new TranslateHttpLoader(http, "./assets/i18n/", ".json");
}
@NgModule({
imports: [
HttpClientModule,
TranslateModule.forRoot({
loader: {
provide: TranslateLoader,
useFactory: HttpLoaderFactory,
deps: [HttpClient]
}
})
],
declarations: [AppComponent],
bootstrap: [AppComponent],
})
export class AppModule {
}
app.component.ts
import { Component } from '@angular/core';
import { TranslateService } from '@ngx-translate/core';
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.scss']
})
export class AppComponent {
constructor(private translate: TranslateService) {
translate.addLangs(["en", "nb"]);
translate.setDefaultLang('en');
}
}
版本:
@angular/core@5.1.3
@ngx-translate/core@9.0.2
@ngx-translate/http-loader@2.0.1
答案 0 :(得分:1)
我遇到了同样的问题,但是它能够解决。首先,您必须均衡对应于Angular版本的版本。然后将代码移到基本底部 导出类AppModule {}。这是您必须移动的代码:
export function HttpLoaderFactory(http: HttpClient) {
return new TranslateHttpLoader(http, "./assets/i18n/", ".json");
}