基于对象原型函数的AngularJS滤波

基于对象原型函数的AngularJS滤波,angularjs,angularjs-ng-repeat,angularjs-filter,Angularjs,Angularjs Ng Repeat,Angularjs Filter,我想使用在repeat项的原型上定义的函数过滤ng repeat,但我找不到任何说明这是否实际可行的参考。差不多 <div ng-repeat="user in users | filter:{'isAdmin()': true} | orderBy:'getFullName()'"> {{user.getFullName()}} </div> {{user.getFullName()}} 其中isAdmin返回一个布尔值。orderBy使用这种符号,但fi

我想使用在repeat项的原型上定义的函数过滤ng repeat,但我找不到任何说明这是否实际可行的参考。差不多

<div ng-repeat="user in users | filter:{'isAdmin()': true} | orderBy:'getFullName()'">
    {{user.getFullName()}}
</div>

{{user.getFullName()}}

其中isAdmin返回一个布尔值。orderBy使用这种符号,但filter似乎不能使用我尝试的任何符号。如果没有检查isAdmin()的单独函数,有没有办法实现这一点?

您可以调用控制器中定义的函数:

$scope.isAdmin = function(x) {
    if (x.name == 'bob') {
      return true;  
    }
 }
函数必须返回true或false

并在html中使用它:

<div ng-repeat="user in users | filter:isAdmin | orderBy:'getFullName()'">
    {{user.getFullName()}}
</div>

{{user.getFullName()}}
创建一个,例如:

app.filter('isAdmin', [function() {
    return function(users) {
      var filtered = [];
      for (var i = 0; i < users.length; i++) {
        var user = users[i];

        //here you can use what ever function you want to check if user is admin
        if (user.name == 'bob') {
          filtered.push(user);
        }
      }
      return filtered;
    };
  }
]);
app.filter('isAdmin',[function(){
返回函数(用户){
var筛选=[];
对于(var i=0;i
并在HTML中使用它,如下所示:

<div ng-repeat="user in users | isAdmin | orderBy:'getFullName()'">
    {{user.getFullName()}}
</div>

{{user.getFullName()}}
这里有一个