AngularJS 翻译服务的插值问题
AngularJS interpolation issue with translate service
我的 html 中有这个三元运算符(工作正常)
{{ qp.QP_TRANSFERS === '1' ? qp.QP_TRANSFER_TYPE_NAME + ' transfer' : 'No transfer' }}
我正在使用 json 个对象的翻译服务。这是 en_US.json 文件的示例:
"myquotes": {
"PAGETITLE": "My quotes",
"DESCRIPTION": "List of all your asked quotes",
"packages": {
"label": {
"SEARCH": {
"TITLE": "Package quotes",
"DESCRIPTION": "Search by any column",
"QUOTE": "Quote",
"ADULTS": "Adults",
"MINORS": "Minors",
"TRANSFER": "transfer",
"NOTRANSFER": "No transfer"
}
},
}
}
我是这样使用的:
{{ 'myquotes.packages.label.ADULTS' | translate }}
有没有办法在我的三元示例中使用此服务?
在这个 plunker 中,您有一个工作示例,据我所知,您正在寻找的内容。
基本上,在使用 translate
过滤器之前,您已经使用括号将三元表达式 ( ... )
包装起来,但我建议您将该逻辑放在控制器的函数中以获得更具可读性的模板:
<p>{{ ('myquotes.packages.label.SEARCH.' + (qp.QP_TRANSFERS === '1' ? 'TRANSFER' : 'NOTRANSFER')) | translate}}</p>
或:
<p>{{ getLabel(qp.QP_TRANSFERS) | translate}}</p>
其他选项可能是使用 ng-init
指令将完整的字符串 Key 初始化到一个变量中,然后使用 translate
过滤器针对该变量,如下所示:
<p
ng-init="LABEL = 'myquotes.packages.label.SEARCH.' +
(qp.QP_TRANSFERS === '1' ? 'TRANSFER' : 'NOTRANSFER')">
{{ LABEL | translate}}
</p>
我的 html 中有这个三元运算符(工作正常)
{{ qp.QP_TRANSFERS === '1' ? qp.QP_TRANSFER_TYPE_NAME + ' transfer' : 'No transfer' }}
我正在使用 json 个对象的翻译服务。这是 en_US.json 文件的示例:
"myquotes": {
"PAGETITLE": "My quotes",
"DESCRIPTION": "List of all your asked quotes",
"packages": {
"label": {
"SEARCH": {
"TITLE": "Package quotes",
"DESCRIPTION": "Search by any column",
"QUOTE": "Quote",
"ADULTS": "Adults",
"MINORS": "Minors",
"TRANSFER": "transfer",
"NOTRANSFER": "No transfer"
}
},
}
}
我是这样使用的:
{{ 'myquotes.packages.label.ADULTS' | translate }}
有没有办法在我的三元示例中使用此服务?
在这个 plunker 中,您有一个工作示例,据我所知,您正在寻找的内容。
基本上,在使用 translate
过滤器之前,您已经使用括号将三元表达式 ( ... )
包装起来,但我建议您将该逻辑放在控制器的函数中以获得更具可读性的模板:
<p>{{ ('myquotes.packages.label.SEARCH.' + (qp.QP_TRANSFERS === '1' ? 'TRANSFER' : 'NOTRANSFER')) | translate}}</p>
或:
<p>{{ getLabel(qp.QP_TRANSFERS) | translate}}</p>
其他选项可能是使用 ng-init
指令将完整的字符串 Key 初始化到一个变量中,然后使用 translate
过滤器针对该变量,如下所示:
<p
ng-init="LABEL = 'myquotes.packages.label.SEARCH.' +
(qp.QP_TRANSFERS === '1' ? 'TRANSFER' : 'NOTRANSFER')">
{{ LABEL | translate}}
</p>