我正在尝试翻译一个选择下拉列表,但我不喜欢我这样做的方式,因为它很麻烦并且绕过了整个角度翻译框架。
语言环境数据看起来像 {"lang": {"label": "text", "select": {"k1": "var1", "k2": "var2"}}} 如果我按下 "select"作为控制器作用域中的成员,我可以在 select 的 ng-options 中编写类似“k as v for (k,v) inscopedvar”的内容。
基本上我想翻译做语言解析,然后离开并返回本地化地图以供我选择。如果它有意义的话,比如:“k as v for (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>
希望能帮助到你!
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)