2014-01-09 80 views
0

我在我们的一个项目中使用了角度。 这里是我们的用户表: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' }} 

回答

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

+0

谢谢!那很整齐 :) – VishwaKumar