2016-11-16 4 views
-2

контроллеркак использовать angularjs фильтр в фильтре частности Фейлд

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 

я должен указать в опции, чей уровень доступа "Supervisor"

Спасибо ,

+0

Здесь нет конкретного подробного вопроса или краткого описания проблемы. После того, как вы прочитаете [ask], обновите содержимое вопроса со всеми соответствующими особенностями. – charlietfl

ответ

0

Вы можете фильтровать по уровню доступа непосредственно в ng-repeat.

ng-repeat="level in users | filter:{tfAccessLevel:'Supervisor'}" 

Взгляните на этот ответ: How to filter by object property in angularJS

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-шаблона должен быть выражением, propertyKey или компаратором. В вашем случае, вам нужно просто вводить свой фильтр, как

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

или еще

вы можете использовать что-то вроде этого, которая довольно проста.

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