angular-translate ad ng-options

时间:2014-05-20 16:48:17

标签: ng-options angular-translate

我试图翻译选择下拉列表并且我不喜欢我这样做的方式,因为它很麻烦,它绕过了整个角度转换框架

区域设置数据看起来像{" lang":{"标签":"文字","选择":{&#34 ; k1":" var1"," k2":" var2"}}}如果我选择"选择"在控制器范围内的成员,我可以在scopedvar"中写出类似" k作为v(k,v)的v。在选择的ng-options中。

基本上我喜欢翻译来进行语言解析,然后开始退出并返回我的选项的本地化地图。如果它有意义,可以使用以下内容:" k作为(k,v)的v在'中选择' |翻译",但当然不是。

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

TIA, 爱德华多

1 个答案:

答案 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>

希望它有所帮助!