Angular如何过滤大于ng-click?

时间:2013-12-12 16:21:18

标签: javascript angularjs filter

我需要过滤属性“age”大于“x”数

的行
    <a href="#" ng-click="personFilter = {age:18}">Older than 18</a>

<div ng-repeat="person in persons | filter:personFilter ">
      <div>{{person.name}}</div>
      <div>{{person.age}}</div>
</div>

提前致谢

1 个答案:

答案 0 :(得分:4)

根据docs,您可以将功能传递给filterHere's an example

<!DOCTYPE html>
<html>

  <head>
    <script data-require="angular.js@1.2.4" data-semver="1.2.4" src="http://code.angularjs.org/1.2.4/angular.js"></script>
    <link rel="stylesheet" href="style.css" />
    <script src="script.js"></script>
  </head>

  <body ng-app="example" ng-controller="Ex">
    <!-- on click set the filter to our custom function defined in scope -->
    <a href="#" ng-click="personFilter = isOver18">Older than 18</a>
    <ul>
      <li ng-repeat="p in people | filter:personFilter">
        {{p.name}} - {{p.age}}
      </li>
    </ul>
  </body>

</html>

控制器:

angular.module('example', [])
  .controller('Ex', function($scope) {
     $scope.personFilter = {};
     $scope.people = [
        {name: "Bob", age: 32},
        {name: 'Billy', age: 12}
      ];

      /* returns true if the provided person is over 18 */
      $scope.isOver18 = function(p) {
        return p.age > 18;
      }
  });