Как установить пользовательский путь к файлу json `ngrx-translate`.ошибка 404 - PullRequest
0 голосов
/ 25 февраля 2019

Я пытаюсь загрузить файл 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)

так как установить значения локального пути?

...