【问题标题】:angular2 after upgrade Error encountered resolving symbol values staticallyangular2 升级后遇到静态解析符号值时出错
【发布时间】:2017-06-09 10:21:46
【问题描述】:

我已经升级到最新的 Angular cli,现在我收到了这个错误:

静态解析符号值时遇到错误。对本地(非导出)符号“字典”的引用。考虑导出符号(原始 .ts 文件中的位置 12:7),解析 C:/xampp/htdocs/milesofmusic/src/app/translate/translation.ts 中的符号 TRANSLATION_PROVIDERS,解析 C:/xampp/htdocs 中的符号 AppModule /milesofmusic/src/app/app.module.ts,解析C:/xampp/htdocs/milesofmusic/src/app/app.module.ts中的符号AppModule

它引用的代码是这样的:

// all traslations
const dictionary = {
    [LANG_EN_NAME]: LANG_EN_TRANS,
    [LANG_HE_NAME]: LANG_HE_TRANS,
};

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

并在我的应用程序模块中导入 从 './translate/translation' 导入 { TRANSLATION_PROVIDERS }; 并将其放在 providers 数组中

如何解决?

【问题讨论】:

    标签: angular angular-cli


    【解决方案1】:
    const dictionary  = {
        [LANG_EN_NAME]: LANG_EN_TRANS,
        [LANG_FR_NAME]: LANG_FR_TRANS,
    
    };
    

    我也遇到同样的错误,所以做一件事:直接写语言值而不是括号。

    const dictionary  = {
        "en-US": LANG_EN_TRANS,
        "fr-FR": LANG_FR_TRANS,
    };
    

    享受快乐的编码

    【讨论】:

      【解决方案2】:

      我相信您从万维网上某处的旧指南中获得了这个示例。据我记得,这个已经过时了,它不再是在 angular2 中处理翻译的合适方法。我建议你看看 i18n internationalization Angular 的食谱。

      【讨论】:

      • 是的,这是我尝试的第一件事。但后来我还是:遇到静态解析符号值的错误。不支持表达式形式(原始 .ts 文件中的位置 13:2),解析 C:/xampp/htdocs/milesofmusic/src/app/translate/translation.ts 中的符号字典,解析 C:/xampp/htdocs 中的符号 TRANSLATION_PROVIDERS /milesofmusic/src/app/translate/translation.ts,解析 C:/xampp/htdocs/milesofmusic/src/app/app.module.ts 中的符号 AppModule,解析 C:/xampp/htdocs/milesofmusic/src 中的符号 AppModule /app/app.module.ts
      • 感谢您的回答。我需要将其转换为使用内置的 i18n。但这个答案确实对我有用link
      • 我在找那个!我记得我之前看到过同样的问题 :) 很好的发现。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-01-03
      • 2017-09-06
      • 1970-01-01
      • 2023-03-12
      • 1970-01-01
      • 1970-01-01
      • 2017-12-20
      相关资源
      最近更新 更多