我正在尝试在我的页面中添加过滤器。当我尝试使用一个项目过滤列表时工作正常,但我希望包含多个值以及隐藏值来查询
我的控制器 -
$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。 你能告诉我怎么做吗?任何帮助或建议?
答案 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});
会过滤lastName
或orderId
或itemId
或name
或与{{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});