0

我是角度新手,我尝试将模块ng2-completerTranslateModule一起使用。

问题是当我从服务器端检索 JSON 时,JSON 是:

[{"id":10,"tipo":"EUR"},{"id":20,"tipo":"USD"}]

我想在标签中使用tipo作为值

<ng2-completer #openCloseSelect
            class="completer-limit"
            [datasource]="dataService4"
            [inputClass]="'form-control'"
            [minSearchLength]="0"
            [openOnFocus]="false"
            [placeholder]="'SCEGLI' | translate"
            [autoHighlight]="true"
            [selectOnClick]="true"
            [fillHighlighted]="false">
 </ng2-completer>

其中“ dataService4 ”在构造函数中初始化为

this.dataService4 = completerService.local( this.diviseAzioni , "tipo", "tipo"); // diviseAzioni是对象列表class DivisaAzioni { id: number; tipo: string;}(来自服务器端的 JSON)


并使用 angular 的TranslateModule来转换tipo的值。

例如EUR : "Euro", USD : "US Dollars" 作为选择的 textLabel。

谢谢。

4

1 回答 1

0

这样做的挑战是您想要与实际数据值不同的显示值(如果我正确地解释了您的问题)。

查看 ng2-completer 的文档,我看不到这样做的方法。您的选择似乎是:

1)通过修改ng2-completer源代码来破解一个解决方案(不推荐)

2)重写你的服务如下:当数据来自它调用的任何API时,立即使用翻译模块翻译它,并且只公开翻译后的值。每当您使用服务保存或发送值时,请翻译回源文本。您可以使用本地地图加快速度,这样您就不必为反向翻译进行网络调用。

3)使用垫子自动完成。你可以只包含你需要的组件,尽管它仍然很重。但是,它具有完全这样的功能:https ://material.angular.io/components/autocomplete/overview#setting-separate-control-and-display-values

于 2018-04-18T17:22:02.743 回答