AngularJs:基于价值的不同占位符

时间:2014-01-09 11:45:42

标签: javascript angularjs

我在我们的一个项目中使用角度。 这是我们的用户表:

ID    NAME      WEBSITE    ROLE
1    Nitin     www.n.com    1
2    Abhi      www.a.com    1
3    Vivek     www.v.com    2
4    Mike      www.m.com    0
5    Nav       www.na.com   2

Role: 0 - ADMIN | 1 - ACTIVE MEMBER | 2 - INACTIVE MEMBER

这是我的角度视图代码:

<table ng-table="tableParams" class="table table-hover">
                <thead>
                    <tr>
                        <th>ID</th>
                        <th>NAME</th>
                        <th>WEBSITE</th>
                        <th>STATUS</th>
                    </tr>                   
                </thead>
                <tbody>
                    <tr ng-repeat="user in users | filter:query | orderBy:[checkedFunction,dFilter] track by $index ">
                        <td>
                            <input type="checkbox" ng-model="user.checked" value="{{ user.ID }}" />
                        </td>
                        <td>{{ user.NAME }}</td>
                        <td>{{ user.WEBSITE }}</td>
                        <td>{{ user.ROLE }}</td>
                    </tr>
                </tbody>
            </table>

现在我的问题是我如何展示角色的相应文本?是否有任何方法可以定义角色的文本,角度是否根据角色自动显示?

我可以在视图中使用ng-if语句,但我觉得这不是一个好主意。 棱角是否有类似

的东西
{{ user.ROLE ? 0 : 'ADMIN', 1 : 'ACTIVE MEMBER', 2 : 'INACTIVE MEMBER' }}

1 个答案:

答案 0 :(得分:2)

我可能会为此创建一个过滤器。

angular.module('app', [])
  .filter('role', function() {
    return function (input) {
      var roleTypes = { 0 : 'ADMIN', 1 : 'ACTIVE MEMBER', 2 : 'INACTIVE MEMBER' };
      var role = parseInt(input);
      return roleTypes[role];
    };
});

使用:

{{user.ROLE | role}}

http://docs.angularjs.org/tutorial/step_09