使用过滤器的angularjs多语言数据绑定
我需要在我的网站两种语言。 对于更改标签文本,它非常有效 这是过滤器:使用过滤器的angularjs多语言数据绑定,angularjs,angularjs-filter,Angularjs,Angularjs Filter,我需要在我的网站两种语言。 对于更改标签文本,它非常有效 这是过滤器: var mi = angular.module('myApp'); mi.filter('lang', lang); function lang($rootScope) { var tables = { 'he': { 'Country': 'xyz:', }, 'en': { 'Country': 'country:'
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>
}
并试图把它绑成这样:
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>
当我第一次运行应用程序时,它就可以工作了。但是当我试图改变语言时,它并没有我并没有真正得到你所期望的。你不想发生什么事?还有一件事。也许你应该考虑用角度翻译来翻译?我从服务器上得到了两个字段,但我只想根据选择的语言显示其中一个字段,即值,而不是字段的名称。用我写的过滤器能做到吗?我还是不太明白。tables对象是从db中获得的?您想如何处理集合中的MI?什么是您的集合,什么是MI?这是我从服务器获取的数据:DataTable.Row[0]['TEXT\u HE']='12345'和DataTable.Row[0]['TEXT\u EN']='12345\u e'。当我用ng repeat循环遍历集合时,我想得到lang=he中的'12345',lang=en中的'12345_e'。也许这对你有帮助?
<p ng-bind="MI['{{'MenuText'|lang}}']"></p>
'he':{
'MenuText':'TextHe'
},
'en':{
'MenuText':'TextEN'
}