【问题标题】:Angular how to filter by greater than on ng-click?Angular如何过滤大于ng-click?
【发布时间】:2013-12-12 16:21:17
【问题描述】:

我需要过滤属性“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>

提前致谢

【问题讨论】:

    标签: javascript angularjs filter


    【解决方案1】:

    根据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;
          }
      });
    

    【讨论】:

    • 谢谢约翰!好吧,文档说明了过滤器,但是很难将该信息与 ng-click 绑定....
    猜你喜欢
    • 2016-09-24
    • 2015-06-21
    • 2016-06-16
    • 1970-01-01
    • 2015-05-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多