我尝试从promise中获取一些数据,但没有返回任何内容。有人可以帮我吗?怎么了?
return test zone_symbol__state:null __zone_symbol__value:阵列(0)__原:对象
load(): Promise < any > {
const test = this.http
.get(this.translationPath)
.toPromise()
.then(
this.createTranslationProviders
).catch((err: any) => {
Promise.resolve();
console.log('resolve' + err)
});
return test; // this is always NULL
}
private createTranslationProviders(response: Response) {
let translationProvider: any;
translationProvider = [
// { provide: TRANSLATIONS, useValue: response },
// { provide: TRANSLATIONS_FORMAT, useValue: 'xlf' },
{
provide: LOCALE_ID,
useValue: 'de_DE'
}
];
return translationProvider;
}
&#13;
答案 0 :(得分:0)
您的TranslationService会在承诺中返回提供商列表,但您不会将此提供商添加到模块中。您可以在不使用APP_INITIALIZER的情况下查看ng-conf翻译回购的方式,但是使用提供程序的加载列表,然后使用它们的boostraping模块:
https://github.com/ocombe/i18n-demo/blob/c3a063bb51d097eee14f889bce48b4bb9df9d1da/src/main.ts#L12
getTranslationProviders(environment.production).then((providers:
CompilerOptions[]) => {
const options = { providers };
platformBrowserDynamic().bootstrapModule(AppModule, options);
});
此外,请注意它目前无法与AOT合作。您可能会发现以下链接有用:
[i18n]为v4及以后的计划 - https://github.com/angular/angular/issues/16477
翻译失败(ng-conf 2017) - https://www.youtube.com/watch?v=dihyu1a2bPc