当我使用ionic build android命令构建android时出现错误
ngc:错误:静态解析符号值时遇到错误.引用本地(未导出)符号“字典”.考虑导出符号(原始.ts文件中的位置14:8),解析符号TRANSLATION_PROVIDERS
我在translation.ts文件中的代码
export const TRANSLATIONS = new OpaqueToken('translations');
// all traslations
const dictionary : any = {
[LANG_EN_NAME]: LANG_EN_TRANS,
[LANG_AR_NAME]: LANG_AR_TRANS,
[LANG_FR_NAME]: LANG_FR_TRANS
};
// providers
export const TRANSLATION_PROVIDERS : any = [
{ provide: TRANSLATIONS, useValue: dictionary},
];
我的app.module.ts代码
import {TRANSLATION_PROVIDERS,TranslatePipe,TranslateService} from './translate';
@NgModule({
declarations: [
MyApp,
],
imports: [
BrowserModule,
IonicModule.forRoot(MyApp)
],
bootstrap: [IonicApp],
entryComponents: [
MyApp,
],
providers: [TRANSLATION_PROVIDERS,TranslateService ]
})
export class AppModule {}
关于这个问题的任何建议,顺便说一句,当我使用离子服务命令我的项目工作100%
解决方法:
我找到了解决方法.
您不必导出字典对象,只需将键更改为静态值即可.
这为我工作:
// all translations
const dictionary = {
"en": LANG_EN_TRANS,
"ar": LANG_AR_TRANS,
"fr": LANG_FR_TRANS
};
// providers
export const TRANSLATION_PROVIDERS = [
{ provide: TRANSLATIONS, useValue: dictionary },
];