Angularjs:如何使用多个值(包括隐藏值)过滤列表

时间:2016-03-07 10:27:36

标签: angularjs angularjs-directive angularjs-scope angularjs-ng-repeat

我正在尝试在我的页面中添加过滤器。当我尝试使用一个项目过滤列表时工作正常,但我希望包含多个值以及隐藏值来查询

我的控制器 -

$scope.updateSearch = function () {
$scope.filtered = $filter($scope.tracks, {name: $scope.search.id});
};
  $scope.resetFilters = function () {
  $scope.search = {};
};

我的jsp -

<div class="col-sm-6">
<input type="text" ng-model="search.id"   ng-change="updateSearch()"class="form-control ng-pristine ng-valid"></div>

在上面的示例中,我尝试使用id值进行过滤,但希望包含其他值,如orderId,itemId,lastName。 你能告诉我怎么做吗?任何帮助或建议?

2 个答案:

答案 0 :(得分:2)

  

{name:&#34; M&#34;,phone:&#34; 1&#34;}谓词将返回一系列项目   拥有包含&#34; M&#34;和包含&#34; 1&#34;的财产电话。一个   可以使用特殊属性名称$(如{$:&#34; text&#34;})来接受a   匹配对象或其嵌套对象的任何属性   属性。

过滤文档here

让我们说$scope.search.id = 1然后

$scope.filtered = $filter($scope.tracks, {$: $scope.search.id});会过滤lastNameorderIditemIdname或与{{1}匹配的任何属性(包括隐藏)的所有结果}

让我们说1,然后

$scope.search.name = 'John' and $scope.search.orderId = 123会在$scope.filtered = $filter($scope.tracks, {name: $scope.search.id, orderId: $scope.search.orderId});name John下过滤这些订单。

我很害怕,我还没理解你想要哪一个。所以,我给了多个过滤搜索和多个属性搜索解决方案。

答案 1 :(得分:0)

您可以通过应用多个条件来实现此目的。

$scope.filtered = $filter($scope.tracks, 
    {id: $scope.search.id,orderId: $scope.search.orderId,itemId:$scope.search.itemId,lastName:$scope.search.lastName});