angularjs 过滤器不过滤多重过滤器值 [英] angularjs filter not filter multipe filter value

查看:53
本文介绍了angularjs 过滤器不过滤多重过滤器值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在寻找 angularjs 多条件过滤器,例如 数组中的这个 arr |过滤器:filters.search |过滤器:{公司:selectedName} |filter:{voucher_type: both } 它工作但不过滤所有条件我粘贴我的完整代码here.filter:{company: selectedName} |filter:{voucher_type: both } 这个过滤步骤在我的代码中是错误的.@感谢您的回复

<头><link rel="stylesheet" type="text/css" href="css/bootstrap.min.css"/><title>搜索</title><身体><div ng-app="app" ng-controller="mainCtrl"><div><select ng-model="selectedName" ng-options="x for x in names"></选择>

<input type="text" ng-model="both"><div>按名称搜索:<input type="text" ng-model="filters.search"></div><div ng-repeat="arr in array | filter:filters.search | filter:{company: selectedName} | filter:{voucher_type: both } "><span ng-bind="arr.name"></span>

<script type="text/javascript" src="js/angular.min.js"></script><script src="js/ui-bootstrap-tpls-0.9.0.js"></script><script type="text/javascript">var app = angular.module('app', []);app.controller('mainCtrl', function($scope) {$scope.names = ["x", "y"];$scope.filters = {x:假,公司: '',搜索: ''};$scope.actions = {更新公司:函数(){如果($scope.filters.y){$scope.filters.company = 'y';} 别的 {$scope.filters.company = '';}}};$scope.both ="z";$scope.array = [{名称:'托比亚斯',lname:'TLname',公司:'x'},{名称:'杰夫',lname:'JLname',公司:'x'},{name: 'Brian', lname: 'BLname', 公司: 'x'},{名称:'伊戈尔',lname:'ILname',公司:'y'},{name: 'James', lname: 'JLname', 公司: 'z'},{名称:'布拉德',lname:'BLname',公司:'y'},{名称:'罗勒',lname:'罗勒',公司:'z'},];});</html>

解决方案

我进行了一些更改,现在可以正常使用 filter:valFilter 过滤器已更改并添加了新功能

 $scope.valFilter = function (arr) {return (arr.company == "z" || arr.company == $scope.selectedName);}

谢谢大家

Am looking for angularjs multiple condition filter like this arr in array | filter:filters.search | filter:{company: selectedName} | filter:{voucher_type: both } It working but not filtering all condition am pasting my full code here . filter:{company: selectedName} | filter:{voucher_type: both } this filter step is wrong in my code.@Thank you for response

<html >
<head>
<link rel="stylesheet" type="text/css" href="css/bootstrap.min.css"/>
<title>search</title>
</head>
<body>
<div ng-app="app" ng-controller="mainCtrl">

 <div><select ng-model="selectedName" ng-options="x for x in names">
</select>
    </div>
    <input type="text" ng-model="both">
       <div>Search by Name: <input type="text" ng-model="filters.search"></div>

       <div ng-repeat="arr in array | filter:filters.search | filter:{company: selectedName} | filter:{voucher_type: both } ">
           <span ng-bind="arr.name"></span>    
       </div>

</div>

<script type="text/javascript" src="js/angular.min.js"></script> 
<script src="js/ui-bootstrap-tpls-0.9.0.js"></script> 
<script type="text/javascript">
var app = angular.module('app', []);
app.controller('mainCtrl', function($scope) {

$scope.names = ["x", "y"];
      $scope.filters = {
        x: false,
        company: '',
        search: ''
    };

       $scope.actions = {
        updateyCompany: function () {
            if($scope.filters.y) {
                $scope.filters.company = 'y';
            } else {
                 $scope.filters.company = '';   
            }
        }
    };

    $scope.both ="z";

    $scope.array = [
    {name: 'Tobias', lname: 'TLname', company: 'x'},
    {name: 'Jeff', lname: 'JLname', company: 'x'},
    {name: 'Brian', lname: 'BLname', company: 'x'},
    {name: 'Igor', lname: 'ILname', company: 'y'},
    {name: 'James', lname: 'JLname', company: 'z'},
    {name: 'Brad', lname: 'BLname', company: 'y'},
    {name: 'Basil', lname: 'Basil', company: 'z'},
  ];
});
</script>


</body>
</html> 

解决方案

am make some changes it work fine now filter:valFilter filter is changed and new function is added

 $scope.valFilter = function (arr) {
    return (arr.company == "z" || arr.company == $scope.selectedName);
    }

Thank you all

这篇关于angularjs 过滤器不过滤多重过滤器值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
PHP最新文章
热门教程
热门工具
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆