2016-11-16 38 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>