使用 ng-repeat 隐藏数组中的对象



我正在使用 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="worker"并希望隐藏用户access_level="admin"的条目。我该怎么做??任何建议和意见都非常感谢。

<tr ng-repeat="res in vm.empDetails track by $index" ng-show="res.access_level === 'worker'"> 
  // something
</tr>          
<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;
    };
});

您可以使用过滤器:

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

最新更新