重复完成后,如何更改 ng-repeat 内部的值



我有一个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将国家代码转换为全名。 更改代码到全名是我编写的有角度的服务,这是一种正确的方法吗?如果是,我无法访问 dom 来更改国家全名值。我试图像vm.CountryFullName[0]="TEST"一样在JS文件中访问它们,但它没有奏效。我需要在之后使用 e.Country 变量,因此我无法更改原始的 .e.Country 值。

在 ng-repeat 完成后,如何访问 ng-repeat 内部的变量?

如何使用自定义过滤器:

<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)
    }
})

下面是一个示例:http://codepen.io/rustydev/pen/YWyqJB

这是一种方法,但如果列表更新,则不会重新解析此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;
    });
});

最新更新