2016-05-18 39 views
2

我已过滤像以下:一个装置,如果我选择multiple checkboxes(比如:一个从Name复选框并从Description下拉菜单一个复选框),则那些相应匹配的数据即将的NameDescription列细,并且类似地针对其它的选择也(如DescriptionField4Field4和名称dropdowns)。AngularJS单选筛选不适用于名称,描述和Field4复选框值?

如果我选择从所有下拉菜单中的所有三个复选框(如name 1description 1field4 1那么它的匹配数据即将罚款NameDescriptionField4

但我需要的是现在:数据不(例如:如果我选择了NameDescriptionfield4下拉选框,那么选中的复选框相关数据就不会出现),以便我可以用三种情况过滤数据:单选,任意两个下拉式复选框选择,全部三个下拉式复选框选择。

代码在下面给出并创建Fiddle

我该怎么做?请帮助我,并提前致谢。

回答

1

我更新了一些代码来使它工作。

$scope.filterItems = function(item) { 
     if ($scope.pagedItems.name !== undefined && $scope.pagedItems.description !== undefined && $scope.pagedItems.name !== "false" && $scope.pagedItems.description !== "false") { 
     if(item.name === $scope.pagedItems.name && item.description === $scope.pagedItems.description) return true; 
    } else { 
      if (item.name === $scope.pagedItems.name) return true; 
     if (item.description === $scope.pagedItems.description) return true; 
     if ((item.description.indexOf($scope.pagedItems.description) > -1 && 
      $scope.pagedItems.description !== '')) return true; 
    } 
    return false; 
} 

和HTML:

<div> 
    <div class="dropdown"> 
    <a href="#" data-toggle="dropdown" class="btn btn-default dropdown-toggle">Select Name<b class="caret"></b></a> 
    <ul class="dropdown-menu"> 
     <li><input type="checkbox" data-ng-model='pagedItems.name' data-ng-true-value='name 1' data-ng-false-value='false' /> name1</li> 
     <li><input type="checkbox" data-ng-model='pagedItems.name' data-ng-true-value='name 2' data-ng-false-value='false' /> name2</li> 
     <li><input type="checkbox" data-ng-model='pagedItems.name' data-ng-true-value='name 3' data-ng-false-value='false' /> name3</li> 
    </ul> 
</div><br><br> 
<div class="dropdown"> 
    <a href="#" data-toggle="dropdown" class="btn btn-default dropdown-toggle">Select Description <b class="caret"></b></a> 
    <ul class="dropdown-menu"> 
     <li><input type="checkbox" data-ng-model='pagedItems.description' data-ng-true-value='description 1' data-ng-false-value='false' /> description 1</li> 
     <li><input type="checkbox" data-ng-model='pagedItems.description' data-ng-true-value='description 2' data-ng-false-value='false' /> description 2</li> 

    </ul> 
</div> 
</div> 

通过从名称一变至名(同为说明)我能简化你的if语句,使组合匹配工作,而一个巨大的if语句。

我更新了你的小提琴,你可以找到here

+0

感谢您的回复,是的,它是工作(第二方案)名称为1和说明1(匹配的数据),但没有第一个方案(喜欢它:如果我只选择名称1,然后显示“名称1”数据,它现在不会进入吗? – Dhana

+1

查看我的文章的更新,这是你想要的,请保持HTML统一(例如,保持假的值都一样,不要他们之间改变它我现在把它全部改为假,所以我可以摆脱它) – selten98

+0

是的,它现在正在按我的要求正常工作,非常感谢你的帮助真的!! – Dhana