【问题标题】:Angular 2 Error encountered resolving symbol values statically静态解析符号值时遇到Angular 2错误
【发布时间】:2023-03-12 00:53:01
【问题描述】:

我在 Angular2 中有来自 this example 的简单 TranslationModule。现在,在 angular-cli 更新后,我得到了上述错误,但我不知道我必须在这里更改什么:

import {NgModule} from "@angular/core";
import {TranslatePipe} from "./translate.pipe";
import {TRANSLATION_PROVIDERS} from "./translations";
import {TranslateService} from "./translate.service";

@NgModule({
  declarations: [
    TranslatePipe
  ],
  providers: [
    TRANSLATION_PROVIDERS,
    TranslateService
  ],
  exports: [
    TranslatePipe
  ]
})
export class TranslateModule {
}

还有翻译.ts

import {OpaqueToken} from '@angular/core';

// import translations
import {LANG_EN_US_NAME, LANG_EN_US_TRANS} from './lang-en_US';
import {LANG_DE_DE_NAME, LANG_DE_DE_TRANS} from './lang-de_DE';

// translation token
export const TRANSLATIONS = new OpaqueToken('translations');

// default language
export const DEFAULT_LANG = "en_US";

// all translations
export const dictionary = {
  [LANG_EN_US_NAME]: LANG_EN_US_TRANS,
  [LANG_DE_DE_NAME]: LANG_DE_DE_TRANS
};

// providers
export const TRANSLATION_PROVIDERS = [
  {provide: TRANSLATIONS, useValue: dictionary}
];

【问题讨论】:

    标签: angular


    【解决方案1】:

    尝试将键更改为静态值,例如:

    export const dictionary = {
      'en': LANG_EN_US_TRANS,
      'de': LANG_DE_DE_TRANS
    };
    

    【讨论】:

    • 谢谢,这解决了静态导入,但最终我希望将语言标识符放在一个地方,最好的地方是实际的翻译文件。
    【解决方案2】:

    AoT 不支持 ES6 属性访问器。检查AoT Do's and Don'ts

    【讨论】:

      猜你喜欢
      • 2017-09-06
      • 1970-01-01
      • 2017-02-13
      • 1970-01-01
      • 2018-01-03
      • 1970-01-01
      • 1970-01-01
      • 2017-10-24
      • 2017-02-21
      相关资源
      最近更新 更多