AngularJS - 如何仅过滤1个字段并与查询参数完全匹配

时间:2014-08-10 10:47:11

标签: angularjs filter

默认情况下,"过滤器"在AngularJS过滤器对照对象或数组的所有字段或属性,但我希望它通过精确比较对象的1个属性中的字符串值来过滤数据集。

例如:

<div ng-repeat="subCategory in subCategorys | filter:id | orderBy:'id'"></div> 

其中subCategories是一个数据集,其中包含&#34; number&#34;,&#34; name&#34;,&#34; details&#34; ...等。 我希望过滤器只能在&#34;数字&#34;完全用于查询的参数的属性。

例如,准确查看&#34;数字&#34;中的数字10 subCategorys数据集中的属性。并且不是010&#34;数字&#34;字段,或sdkjj_10_kjd in&#34; name&#34;或任何其他领域。

谢谢

1 个答案:

答案 0 :(得分:3)

http://jsbin.com/zesopa/2/edit

您只需添加第三个参数比较器并将其设置为真值filter:{id:search_id}:true

<强> HTML:

<input type="number" ng-model="search_id" placeholder="search for id">
<div ng-repeat="subCategory in subCategorys | filter:{id:search_id}:true | orderBy:'id'">{{subCategory.id}}</div> 

<强> JS

var app = angular.module('app', []);

app.controller('firstCtrl', function($scope){

 $scope.subCategorys = [
   {id:1,name:"tom"},
   {id:21,name:"jim"},
   {id:221,name:"pam"}
 ];
});