控制器
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
我必须列出其访问级别为&#34; Supervisor&#34;
谢谢,
答案 0 :(得分:0)
您可以直接在ng-repeat中按访问级别进行过滤。
ng-repeat="level in users | filter:{tfAccessLevel:'Supervisor'}"
答案 1 :(得分:0)
答案 2 :(得分: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>