Angular.js按精确值过滤(严格相等)

Muz*_*han 12 javascript angularjs

我有以下HTML代码

  <ul ng-repeat="friend in friends | filter: { age: '2' } | orderBy: 'name' ">
   <li>{{friend.name}}</li>
  </ul>
Run Code Online (Sandbox Code Playgroud)

这是我的$ scope变量

 $scope.friends = [
{ name: "Peter",   age: 2 },
{ name: "Pablo",   age: 55 },
{ name: "Linda",   age: 20 },
{ name: "Marta",   age: 37 },
{ name: "Othello", age: 20 },
{ name: "Markus",  age: 32 }
];
Run Code Online (Sandbox Code Playgroud)

它回来了

Linda
Markus
Othello
Peter
Run Code Online (Sandbox Code Playgroud)

如何在ng过滤器中进行比较,以及如何让我的朋友只有2岁

Peter
Run Code Online (Sandbox Code Playgroud)

m59*_*m59 21

从Angular 1.2开始,您只需要在过滤器中添加strict参数(true),以便查找完全匹配,并将其2作为数字而不是字符串传递:filter:{age:2}:true

angular.module('myApp', [])
.controller('myCtrl', function($scope) {
   $scope.friends = [
    {name: "Peter",   age: 2 },
    {name: "Pablo",   age: 55},
    {name: "Linda",   age: 20},
    {name: "Marta",   age: 37},
    {name: "Othello", age: 20},
    {name: "Markus",  age: 32}
  ]; 
})
;
Run Code Online (Sandbox Code Playgroud)
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<body ng-app="myApp" ng-controller="myCtrl">
  <ul ng-repeat="friend in friends | filter:{age:2}:true | orderBy: 'name' ">
   <li>{{friend.name}}</li>
  </ul>
</body>
Run Code Online (Sandbox Code Playgroud)