【发布时间】:2023-02-04 06:01:30
【问题描述】:
我有一个组件,它采用 MenuItem 对象数组:
<p-contextMenu [model]="contextMenuItems"></p-contextMenu>
我在函数中创建这些菜单项:
private createContextMenuItems(): MenuItem[] {
let menuItems: MenuItem[] = [
{
id: 'play',
label: 'Play'
icon: 'pi pi-play',
},
...
doSomeAdditionalWork(menuItems);
return menuItems;
完成后,我对这些菜单项进行一些额外的处理,并设置 this.menuItems = this.createContextMenuItems() 来填充组件。
我遇到的问题是翻译服务是异步的:
this.translate.get('VOICEMAIL_INBOX.PLAY_VIEW').subscribe()
我不确定如何设置它,以便它在执行其他工作之前进行转换,并将 MenuItem[] 的集合返回给调用者以绑定到组件。我考虑过使整个链异步并使用await firstValueFrom()之类的东西并同步处理这些,但这需要我将整个调用链着色为async而且我仍然不确定如何在绑定之前等待它解析翻译组件。
ngx-translate 确实有一个 instant() 方法。但是,这只会在我使用它时返回密钥,而不是翻译后的值。
【问题讨论】:
标签: angular asynchronous ngx-translate