如何获得一个带有ng-click out ul的过滤器作为ngtable的第二个过滤器?
<ul class="artGroups">
<li class="" ng-repeat="artGroup in artGroups">
<a href="#" ng-click="">{{artGroup.artGroupName}}</a>
</li>
</ul>
答案 0 :(得分:4)
您可以在主控制器上设置一个功能,以便在选择artGroup
时更改值:
$scope.selectedGroup = '';
$scope.setGroup = function(group) {
$scope.selectedGroup = group;
}
并连接ng-click
指令:
<a href="#" ng-click="setGroup(artGroup.artGroupId)">{{artGroup.artGroupName}}</a>
然后,您可以使用范围内的tr
变量在selectedGroup
上设置另一个自定义过滤器:
<tr ng-repeat="article in articles | filter:searchText | isArtGroup:selectedGroup">
然后创建自定义过滤器,根据文章是否属于artGroupId
来过滤文章:
app.filter('isArtGroup', function(){
return function(values, groupId) {
if(!groupId) {
// initially don't filter
return values;
}
// filter when we have a selected groupId
return values.filter(function(value){
return value.artGroupId === groupId;
})
}
})
以下所有这些在Plunker
中一起工作