我有一个应用角度,可以翻译法语和英语。我正在使用角度翻译来做到这一点。问题是:我从API接收了一个对象数组,在这些对象中,我有一个属性bookConditionEn
和一个属性bookConditionFr
以及其他类似ID。
在选择输入中,我想根据当前语言显示bookCondition
。
在控制器中,我可以使用$translate
服务
vm.getCurrentLanguage = function() {
return $translate.use();
}
所以,我想知道在视图中我是否可以在ng-option中使用条件。
<select
ng-options="bookCondition.BookCondition for bookCondition in bookCtrl.bookConditions"
ng-model="bookCtrl.bookConditions"
name="Condition" class="form-control"
></select>
答案 0 :(得分:1)
您可以通过更改创建 myList = [('Y:\\Resources\\Project 1', '2016-07'),
('Y:\\Resources\\Project 1', '2016-08'),
('Y:\\Resources\\Project 2', '2014-01'),
('Y:\\Resources\\Project 3', '2015-12'),
('Y:\\Resources\\Project 3', '2016-02'),
('Y:\\Resources\\Project 3', '2013-08'),
('Y:\\Resources\\Project 4', '2016-04')]
的方式来使用条件来显示/隐藏选项:
newList = [('Y:\\Resources\\Project 1', '2016-08'),
('Y:\\Resources\\Project 2', '2014-01'),
('Y:\\Resources\\Project 3', '2016-02'),
('Y:\\Resources\\Project 4', '2016-04')]
我不太了解你如何设置你的JSON所以我假设你有一个包含语言的属性(bookCondition.language)。您可以将其与用户<select>
返回的当前所选语言进行比较。顺便说一下,我建议将它从函数改为只是一个像这样的变量:
<select ng-options=ng-model="bookCtrl.bookConditions" name="Condition" class="form-control">
<option
ng-repeat="bookCondition.BookCondition for bookCondition in bookCtrl.bookConditions"
ng-if="vm.getCurrentLanguage==bookCondition.language"
>
</select>
这应该是您以条件方式指定选项所需要做的全部。
答案 1 :(得分:0)
它按你的方式工作
<select ng-model="bookCtrl.bookCondition" name="Condition" class="form-control">
<option ng-if="bookCtrl.getCurrentLanguage() === 'en'" ng-repeat="bookCondition in bookCtrl.bookConditions" value="{{bookCondition}}">{{bookCondition.BookCondition}}</option>
<option ng-if="bookCtrl.getCurrentLanguage() === 'fr'" ng-repeat="bookCondition in bookCtrl.bookConditions" value="{{bookCondition}}">{{bookCondition.BookConditionFr}}</option>
</select>