如何链接使用复选框的角度过滤器

时间:2017-02-24 14:08:13

标签: javascript angularjs checkbox filter

我有一个项目列表,我需要3个过滤器。 1个过滤器是一个简单的名称搜索。 其中2个过滤器是用户可以切换以调整其数据的复选框。

以前,当我没有使用复选框(并且只允许每个过滤器使用一个值)时,下面的行允许使用所有过滤器:

'<tr ng-repeat="item in data.itemList | orderBy: orderField | filter: {attr1 : a1Value} | filter: {attr2: a2Value} | filter: {attr3 : a3Value}">'

但是现在我正在使用复选框,这不再适用。 这是我到目前为止所尝试的。 HTML:

'<!--list of checkboxes-->
<dl>
    <dt ng-repeat="type in data.att1List">
       <input type="checkbox" ng-model="a1Obj[type]">{{att1}}
    </dt>
</dl>
<!--...-->
<!-- list of data items -->
<tr ng-repeat="item in data.itemList | orderBy: orderField | filter: {attr1 : a1Filter} | filter: {attr2: a2Obj} | filter: {name : nameValue}">
<!--...-->'

在控制器中我有:

'$scope.data.att1List = ['Group','Corp','HR'];

$scope.data.itemList = [
   {name:'Zeus', attr1:'Corp', attr2:'green' },
   {name:'Athena', attr1:'HR', attr2:'blue' },
   {name:'Apollo', attr1:'Corp', attr2:'red' },
   {name:'Thor', attr1:'Group', attr2:'green' }
];

$scope.a1Obj= {
    'Group' : false,
    'HR' : false,
    'Corp' : false 
};`

$scope.a1Filter = function (itm) {
  return $scope.a1Obj[itm.attr1];
};' 

我错过了什么?有没有人对链接多个过滤器有任何见解,其中一个或多个是复选框?

0 个答案:

没有答案