使用ng-repeat

时间:2016-05-30 10:42:09

标签: angularjs filter ng-repeat ng-hide

我正在使用MEAN堆栈,我在数组中有一些用户的条目,如:

 { bankDetails: [],
  academics: [ [Object], [Object] ],
   trainings: [ [Object] ],
   username: 'sfdf@gmail.afsadfcom',
   accessLevel: 'worker',
   __v: 0},`
 { bankDetails: [],
  academics: [ [Object], [Object] ],
  trainings: [ [Object] ],
  username: 'acbckd@gmail.afsadfcom',
   accessLevel: 'admin',
    __v: 0} and many objects like these.

我从服务器获得并存储在vm.empDetails中:

 $http.get('/employee').then(function(res) {
        console.log(res.data);
         vm.empDetails = res.data;
    }, function(err) {
         console.log(err);
     });

现在我在html文件中所做的是:

  <tr ng-repeat="res in vm.empDetails track by $index">             
           <td>{{res.firstName}} {{res.lastName}}</td>
              <td>{{res.jobTitle}}</td>
               <td><md-button ng-click="vm.manageProfile(res._id)">Manage</md-button></td></tr>    

我获取存储在员工集合中的所有数据并可以显示它们。 我正在尝试的所有内容仅显示 access_level =&#34; worker&#34; 的条目,并希望隐藏 access_level =&#34的用户; admin&#34; 。我怎么能这样做?任何建议和意见都非常感谢。

3 个答案:

答案 0 :(得分:0)

<tr ng-repeat="res in vm.empDetails track by $index" ng-show="res.access_level === 'worker'"> 
  // something
</tr>          

答案 1 :(得分:0)

<tr ng-repeat="res in vm.empDetails track by $index | filter:customFilter">   

您可以使用customFilter过滤掉access_level为管理员

的项目
app.filter('customFilter', function() {
    return function( items ) {
      var filtered = [];
      angular.forEach(items, function(item) {
        if(item.hasOwnProperty("access_level") && !item.access_level === "admin")
            filtered.push(item);
      });
      return filtered;
    };
});

答案 2 :(得分:0)

您可以使用过滤器:

<tr ng-repeat="res in vm.empDetails track by $index | filter: {accessLevel: 'worker'})">             
           <td>{{res.firstName}} {{res.lastName}}</td>
              <td>{{res.jobTitle}}</td>
               <td><md-button ng-click="vm.manageProfile(res._id)">Manage</md-button></td></tr>