我有一个JSON,它为我提供了用户的工作经验信息。但是国家和城市以代码格式提供(TR,DE等) 我正在使用ng-repeat将它们传递给像这样的HTML
<div ng-repeat="e in experiences">
<span>{{e.Name}}</span>
<span ng-init="changeCodeToFullName(e.Country)">{{vm.CountryFullName[$index]}}</span>
</div>
我使用ng-init将国家/地区代码转换为全名。 changeCodeToFullName是我写的一个角度服务,这是一个正确的方法吗?如果是,我无法访问dom来更改CountryFullName值。我试图在像vm.CountryFullName[0]="TEST"
这样的JS文件中访问它们,但它没有用。我之后需要使用e.Country变量,因此我无法更改原始的.e.Country值。
如何在ng-repeat完成后访问ng-repeat内的变量?
答案 0 :(得分:1)
如何使用自定义filter:
<div ng-repeat="e in experiences">
<span>{{e.Name}}</span>
<span>{{e.Country | changeCodeToFullName}}</span>
</div>
angular.module('App').filter('changeCodeToFullName', function(YourService) {
return function(country) {
return YourService.getFullCountryName(country)
}
})
答案 1 :(得分:0)
这是执行此操作的一种方法 - 但如果列表更新,则不会重新解析此ngInit
值。为什么不在JSON请求响应中格式化数据 - 例如:
$http.get("json.json").success(function(data) {
$scope.exeriences = data.map(function(obj) {
//Format results;
if (obj.Country == "DE") {
obj.Country = "Germany"; //etc
}
return obj;
});
});