9

我正在尝试翻译一个选择下拉菜单,但我不喜欢我这样做的方式,因为它很麻烦并且绕过了整个角度翻译框架。

语言环境数据看起来像 {"lang": {"label": "text", "select": {"k1": "var1", "k2": "var2"}}} 如果我敲“select”控制器范围内的成员,我可以在选择的 ng-options 中编写类似“k as v for (k,v) in scopedvar”的内容。

基本上,我想翻译以进行语言解析,然后让路并返回本地化地图以供我选择。如果有意义的话,类似:“k as v for (k, v) in 'select' | translate”,但当然不是。

有没有人遇到过(并解决过)这个问题?

TIA,爱德华多

4

1 回答 1

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>

希望能帮助到你!

于 2014-06-13T18:05:47.007 回答