我试图翻译选择下拉列表并且我不喜欢我这样做的方式,因为它很麻烦,它绕过了整个角度转换框架
区域设置数据看起来像{" lang":{"标签":"文字","选择":{&#34 ; k1":" var1"," k2":" var2"}}}如果我选择"选择"在控制器范围内的成员,我可以在scopedvar"中写出类似" k作为v(k,v)的v。在选择的ng-options中。
基本上我喜欢翻译来进行语言解析,然后开始退出并返回我的选项的本地化地图。如果它有意义,可以使用以下内容:" k作为(k,v)的v在'中选择' |翻译",但当然不是。
之前有没有人遇到(并解决过)这个问题?
TIA, 爱德华多
答案 0 :(得分:23)
我没有完全得到你想要实现的东西,但是我会放一些适用于重新加载选项翻译的代码。翻译过滤器。
假设您将此json作为翻译的键/值:
var english = {"lang": {
"label": "text",
"select": {
"k1": "var1",
"k2": "var2"
}}
};
您的控制器会创建一个这样的选项列表:
$scope.optionsList = [
{val: 'var1', translationKey: 'lang.select.k1'},
{val: 'var2', translationKey: 'lang.select.k2'}
];
您最好在ng-options表达式中的选项标签后插入翻译过滤器:
<select ng-model="selectedOpt"
ng-options="opt.val as opt.translationKey | translate for opt in optionsList">
</select>
希望它有所帮助!