Угловой 7 - Переключение между импортом - PullRequest
0 голосов
/ 27 ноября 2018

Ниже представлен сервис, который я сделал, который должен переключаться между импортом en или de в зависимости от параметра lang.

. Если я использую lang, то просто печатаю.this.phrases как {0: "d", 1: "e"} вместо того, что должно быть.

Возможно ли это?

import { Injectable } from '@angular/core';
import en from '../locale/en';
import de from '../locale/de';

@Injectable({
  providedIn: 'root'
})
export class TranslateService {
  phrases: any = {};

  constructor() { }

  use(lang: string) {

    this.phrases =  Object.assign({}, lang || {});
    return this.phrases;
  }
}

если бы эта служба была вызвана с использованием this.translateService.use('en'), я ожидаю, что она вернетсодержимое из en import.

если бы оно было this.translateService.use('de'), то я бы ожидал, что будет возвращено de содержимое.

.. / locale / de

export default {
  "CONTINUE": "fortsetzen",
  "HELLO": "Halo {{value}}",
  "Email address": "E-Mail-Addresse"
}

Я смог заставить это работать, выполнив

import { Injectable } from '@angular/core';
import en from '../locale/en';
import de from '../locale/de';

@Injectable({
  providedIn: 'root'
})
export class TranslateService {
  phrases: any = {};
  constructor() { }

  use(lang: string) {
    let locale;
    switch(lang) {
      case 'de':
        locale = de;
        break;
      default:
          locale = en;
          break;
    }
    this.phrases =  Object.assign({}, locale || {});
    return this.phrases;
  }
}

Но я надеялся, что был более чистый подход

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...