我需要过滤属性“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>
提前致谢
答案 0 :(得分:4)
根据docs,您可以将功能传递给filter
:Here'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;
}
});