我的网站需要两种语言。 为了更改标签文本,它工作得很好
这是过滤器:
var mi = angular.module('myApp');
mi.filter('lang', lang);
function lang($rootScope) {
var tables =
{
'he': {
'Country': 'xyz:',
},
'en': {
'Country': 'country:',
}
};
return function (label) {
return tables[$rootScope.Language][label];
};
}
这就是我使用它的方式:
<td>{{'Country'|lang}}</td>
另外,我从DB中获取两个字段(每种语言的每个字段):&#39; TEXT_HE&#39;和&#39; TEXT_EN&#39; 是否可以使用过滤器为数据绑定选择正确的字段?我试过这样:
function lang($rootScope) {
var tables =
{
'he': {
'bind_MenuText':'MI.TEXT_HE'
},
'en': {
'bind_MenuText': 'MI.TEXT_EN'
}
};
return function (label) {
return tables[$rootScope.Language][label];
};
}
并尝试将其绑定:
<li ng-repeat="MI in collection">
{{'bind_MenuText'|lang}}
</li>
它并没有奏效。它按字面意思返回:&#39; MI.TEXT_HE&#39;和&#39; MI.TEXT_EN&#39;在HTML中。我相信我可以有条件地更改样式显示属性,但为此我必须在HTML中绑定太多不需要的数据。
修改
也许这会清楚我需要的东西: 这是html,我需要更改数据绑定的字段
<p ng-bind="MI['{{'MenuText'|lang}}']"></p>
这就是&#39; lang&#39;:
'he':{
'MenuText':'TextHe'
},
'en':{
'MenuText':'TextEN'
}
当我第一次运行应用程序时,它可以工作。但是当我尝试改变语言时,它并没有