Я пытаюсь загрузить файл json
из каждого модуля отдельно.поэтому у каждого модуля будет своя папка с заданиями и i18n
- папка с файлом jsonЯ также использую пользовательский загрузчик в модуле.
общий модуль:
import { NgModule } from '@angular/core';
import { RouterModule } from '@angular/router';
import { CommonModule } from '@angular/common';
import { HttpClientModule, HttpClient } from '@angular/common/http';
import { TranslateModule, TranslateLoader } from '@ngx-translate/core';
import { LangService } from "./lang/lang.service";
@NgModule({
declarations: [
],
imports: [
CommonModule,
RouterModule,
HttpClientModule,
TranslateModule.forChild({
loader:{provide:TranslateLoader, useClass: LangService}
})
],
exports: [
TranslateModule
]
})
export class SharedModule { }
мой LangService
- файл:
import { Injectable, OnInit } from "@angular/core";
import { HttpClient } from '@angular/common/http';
import { TranslateLoader } from '@ngx-translate/core';
import { Observable } from "rxjs";
import { map } from "rxjs/operators";
@Injectable({
providedIn: 'root'
})
export class LangService implements TranslateLoader {
constructor(private http:HttpClient) {}
public getTranslation(lan:string):Observable<any> {
console.log('long service called');
return this.http.get('./../assets/i18n/en.json') //it load from local relative path
.pipe(
map( (res:any) => {
console.log('lang done');
return res.json();
} )
)
}
}
мой компонент:
import { Component, OnInit, Input, Output, EventEmitter } from '@angular/core';
import { TranslateService } from '@ngx-translate/core';
declare var $: any;
@Component({
selector: 'header-nav',
templateUrl: './header-nav.component.html',
styleUrls: ['./header-nav.component.scss']
})
export class HeaderNavComponent implements OnInit {
constructor (
private calendarService:CalendarService,
private translate: TranslateService
) {
// translate.setDefaultLang('en');
}
ngOnInit() {
this.translate.getTranslation('en').subscribe(result => {
console.log('result', result); //called but getting error.
});
// console.log('transText', transText);
}
showEventsList(event) {
this.showEventList = !this.showEventList;
}
eventSelected(event:ModelEvent):void {
this.selectedEvent.emit(event);
}
}
получить ошибку как:
zone.js:3243 GET http://localhost:4200/assets/i18n/en.json 404 (Not Found)
так как установить значения локального пути?