在使用 ngx-translate 服务的 PrimeNG 组件的 Angular 4 应用程序中,我还想翻译下拉列表的 selectedOption,而不仅仅是下拉列表的选项。
在我的组件中,我已经声明了选项和选定的选项
export class CronPickerComponent {
selectedOption: string = 'Jahr';
options: SelectItem[];
constructor( private translate: TranslateService ) {
this.options = [];
this.options.push({ label: 'Jahr', value: 'Jahr' });
this.options.push({ label: 'Monat', value: 'Monat' });
this.options.push({ label: 'Woche', value: 'Woche' });
this.options.push({ label: 'Tag', value: 'Tag' });
this.options.push({ label: 'Stunde', value: 'Stunde' });
this.options.push({ label: 'Minute', value: 'Minute' });
}
computeExpressionFormat() {
// ...
}
}
在相应的 html 中,我插入了相应的 primeNG 下拉列表
<p-dropdown id="cronexpressionoptions" [options]="options"
[(ngModel)]="selectedOption" [style]="{'width':'120px'}"
(onChange)="computeExpressionFormat()">
<template let-option pTemplate="item">
<div translate>{{option.label}}</div>
</template>
</p-dropdown>
问题是选项显示已翻译,但下拉列表的选定值未翻译。正如在下图中可以看到的,选项被翻译成英文,但选定的值仍然是德语(初始值)。
有没有办法翻译所选值或为所选值添加模板。同样在 primeNG下拉列表的 api 上,我没有看到为所选值添加模板的选项。