我正在使用 silviomoreto 选择组件来实现一个组合来选择国际化语言。
我创建了组件,我可以选择一种语言,但是,它不能正常工作。
当我第一次单击一种语言时,控制器会被正确调用并更改语言。但是,对于下一次,有某种错位,我的意思是,我必须点击相同的语言来选择另一种。对不起,这并不容易解释。一个例子:
- 我加载主页视图(西班牙语默认语言)。
- 我在selectpicker中选择了英语,控制器被完美调用并改变了语言。
- 我再次选择西班牙语。然后,在选择中没有设置元素“西班牙”,也没有调用控制器。什么都没发生。
- 我再次选择英语,然后在组合中设置西班牙语,调用控制器并更改语言。
我的查看代码:
<div ng-controller="LanguageCtrl" class="pull-right">
<select class="selectpicker show-menu-arrow selectpicker-medium" style="height: 20px" ng-change="changeLanguage(langKey)" ng-model="langKey" data-header="Choose your language...">
<option value="en">English</option>
<option value="es">Español</option>
</select>
</div>
我的控制器:
.controller('LanguageCtrl', function ($translate, $scope) {
$scope.changeLanguage = function (langKey) {
alert('LanguageCtrl requested with langKey:' + langKey);
$translate.uses(langKey);
};
});
我确定我忘记了什么。