2016-11-16 39 views
-2

控制器如何过滤特定费尔德

app.controller('viewUsersController', function($scope, $http, $cookieStore, $modal) { 
     $scope.cardsDisplayModeEnabled = true; 
     $http.get('http://localhost:8080/myapp/user/all?access_token=' + $cookieStore.get("access_token")). 
     then(function(response) { 
      $scope.users = response.data; 
     }); 

    $scope.filterStarWith = function(level) { 
     var re = new RegExp('^' + "Supervisor", "i"); 
     return level.tfAccessLevel.match(re); 
    }; 
}) 

HTML

<select ng-controller="viewUsersController" ng-model="user.tfSupervisor.id" name="createSupervisor" id="createSupervisor" class="form-control"> 
    <option ng-repeat="level in users | filter:filterStarWith()">{{level.userFirstName}}</option> 
</select> 


Table : user 
Id   username   accesslevel   
1   John    Admin 
2   Mark    Supervisor 
3   Chady    Admin 

我必须列出选项访问等级为 “主管”

由于使用angularjs过滤器,

+0

这里没有具体的问题细节或简明的问题陈述。在你阅读[问]后,用所有相关细节更新问题内容。 – charlietfl

回答

0

你可以简单的做到这一点,使用现有的过滤选项

<select ng-model="user.id" name="createSupervisor" id="createSupervisor" class="form-control"> 
    <option ng-repeat="level in users | filter: { accesslevel: 'Admin' }">{{level.userFirstName}}</option> 
    </select> 

DEMO

0

既然你存储整个数据在您的用户对象作用域中,您将有权访问用户名和访问级别属性。

在这种情况下,我没有看到创建自定义过滤器的原因,因为这可以通过Angular的智能过滤器表达式来处理。

如果您阅读了角度api,则可以在HTML模板绑定中使用该过滤器。

HTML模板绑定中的过滤器应该是expression,propertyKey或comparator。在你的情况,你只是需要注入你的过滤器

<option ng-repeat="level in users | filter:filterStarWith "{{level.userFirstName}}</option> 

否则

你可以使用这样的事情,这是非常简单的。

<option ng-repeat="level in users | filter: {accesslevel: 'Supervisor' }"> {{level.userFirstName}}</option>