Angular 7-在导入之间切换

时间:2018-11-27 18:53:25

标签: angular typescript angular7

以下是我提供的服务,应根据参数en在导入delang之间切换。

如果我按原样使用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导入中返回内容。

如果是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;
  }
}

但是我希望有一个更清洁的方法

0 个答案:

没有答案