使用角度js将服务响应值替换为用户友好值

时间:2017-02-13 10:07:15

标签: javascript angularjs

需要在表格中显示使用ng-repeat的用户友好值。假设以下是服务的响应模型。

[{
   Name : "Hon", 
   Gender : "M"
},
{
   Name : "Hon", 
  Gender : "F"
},
{
   Name : "Hon", 
 Gender : "M"
},
{
   Name : "Jon", 
  Gender : "M"
},
{
   Name : "on", 
  Gender : "F"
}]

目前表格显示如下

名称性别

Hon M

Hon F

Hon M

Jon M

在F <​​/ p>上

但我希望桌子像

名称性别

男士

女性

男士

Jon Male

关于女性

我不想使用任何for循环来做这件事。这是我在这里展示的简单示例。但在我的情况下,有3到4列需要这种映射,每页有可能获得1000条记录。

我们可以使用angular js使用指令或过滤器吗?如果是这样的话?或者你对此有什么更好的建议吗?

1 个答案:

答案 0 :(得分:1)

Angular $filter也基于循环逻辑。

事实上,如果您使用角度过滤器,那么将采用以下方式:

 .filter('genderTransform', function() {
  return function(input) {

    return input.map((val) => {
      if (val.Gender == 'F') {
        val.Gender = 'Female';
      } else if (val.Gender == 'M') {
        val.Gender = 'Male';
      }
      return val
    })
  }
})

然后在模板中:

<div ng-repeat="item in data | genderTransform">
   <!-- whatever -->
</div>

这是一个有效的fiddle