我更新了一些代码来使它工作。
$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
感谢您的回复,是的,它是工作(第二方案)名称为1和说明1(匹配的数据),但没有第一个方案(喜欢它:如果我只选择名称1,然后显示“名称1”数据,它现在不会进入吗? – Dhana
查看我的文章的更新,这是你想要的,请保持HTML统一(例如,保持假的值都一样,不要他们之间改变它我现在把它全部改为假,所以我可以摆脱它) – selten98
是的,它现在正在按我的要求正常工作,非常感谢你的帮助真的!! – Dhana