[英]Translate service dynamically Ionic 2 Angular 2 ngx-translate
[英]ngx-translate as service & map to an array
我正在尝试映射一个通过ngx-translate服务传递的数组。 一定要晚了,我累了。 这似乎正在返回未定义的状态,对于我的一生,我无法弄清楚原因:
datasetLabels: any = ['DASHBOARD.PITCHING_VOLUME.SENT', 'DASHBOARD.PITCHING_VOLUME.RESPONDED', 'DASHBOARD.PITCHING_VOLUME.SECURED'];
this.datasetLabels = this.datasetLabels.map((label) => {
this.translate.get(label).subscribe((res: string) => {
console.log(res); // outputs correct translations
return res;
});
});
console.log(this.datasetLabels);
如您所见,我在console.log(res);
我得到正确的值,但是函数没有映射回数组?
当您订阅Observable时,表示您正在以异步方式工作。
如果要将值保存在可观察范围之外(这不是一个好主意,应该将它们作为流保存),可以这样进行:
const datasetLabels: string = [
'DASHBOARD.PITCHING_VOLUME.SENT',
'DASHBOARD.PITCHING_VOLUME.RESPONDED',
'DASHBOARD.PITCHING_VOLUME.SECURED',
];
const getLabelsStreams: Observable<string>[] = labels =>
labels.map(this.translate.get);
const labels$: Observable<string>[] = getLabelsStreams(datasetLabels);
forkJoin(labels$)
.pipe(tap(labels => (this.datasetLabels = labels)))
.subscribe();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.