我想翻译一个选择下拉菜单,我不喜欢我这样做的方式,因为它很麻烦,它绕过了整个角度转换框架.
区域数据看起来像{“lang”:{“label”:“text”,“select”:{“k1”:“var1”,“k2”:“var2”}}},如果我选择“在控制器范围内的成员,我可以在选择的ng选项中写出类似“k as v for(k,v)in scopedvar”的内容.
基本上,我想翻译来做语言解决,然后离开方式并返回我的选项的本地化地图.如果这是有道理的,就像:“k as(k,v)in’select’| translate”,但当然没有.
有谁面对(并解决了)这个问题吗?
TIA,
爱德华多
我没有完全得到你想要实现的东西,但是我会把一些代码重新加载到翻译过滤器.
假设你有这个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>
希望有帮助!