【发布时间】:2015-05-27 02:13:48
【问题描述】:
我正在使用 AngularJS 构建一个应用程序。
该应用程序是多语言的。您可以从下拉列表中更改语言(选择 HTML 元素)。
我有以下选择:
<select id="filter" class="form-control" ng-model="filter" ng-change="ref()" ng-options="rt.text | translate for rt in rts track by rt.value">
</select>
您可能会看到text 应用了一个过滤器,即translate。这是 Angular Translate 模块的一部分。
我的下拉列表是从数据库中动态填充的,它有一个额外的选项,这是默认选项。
我想要的是在语言发生变化时翻译默认选项,我不知道该怎么做。
当前解决方案的问题是,如果它有任何其他多语言翻译选项,它们将被翻译。我不想要这个,我只想翻译默认选项。
当我添加默认选项时,我使用value='all' 和text='Show all' 将其设置为index=0。
rts的结构:
[
{
value:'all',
text: 'Select_all'
},
{
value:'1',
text: 'option 1'
},
{
value:'2',
text: 'Option 2'
}
]
【问题讨论】:
-
当您获得选项时,为什么不在控制器中进行翻译,而不是作为过滤器进行翻译?
-
我不能这样做,因为我在另一个控制器中管理语言。因此,当我更改当前控制器中的语言时,我看不到翻译值的方法..
-
rts来自哪里?你能举个例子说明你是如何将选项加入这个指令的吗? -
我为
rts添加了JSON结构。
标签: angularjs angular-translate