【发布时间】:2015-11-29 01:35:35
【问题描述】:
我正在尝试使用多个下拉条件进行过滤。我能够弄清楚如何一一过滤它们。我希望它们在未选择任何内容时全部显示,value = ""。
<select class="form-control" ng-model="filter.grade">
<option ng-repeat="grade in product_grades" value="{{grade}}">{{grade}}</option>
</select>
<select class="form-control" ng-model="filter.slump">
<option ng-repeat="slump in product_slumps" value="{{slump}}">{{slump}}</option>
</select>
<select class="form-control" ng-model="filter.flow">
<option ng-repeat="flow in product_flows" value="{{flow}}">{{flow}}</option>
</select>
<select class="form-control" ng-model="filter.last_delivered">
<option ng-repeat="last_delivered in product_last_delivereds" value="{{last_delivered}}">{{displayDate(last_delivered)}}</option>
</select>
<tr ng-repeat="job_product in job_products | filter : customFilter">
对于一个下拉菜单,我使用它。
$scope.customFilter = function (data) {
if (data.Grade === $scope.filter.grade) {
return true;
} else if ($scope.filter.grade === '') {
return true;
} else {
return false;
}
};
但是当我将它用于多个下拉菜单时,它可以工作。
$scope.customFilter = function (data) {
if (data.Grade === $scope.filter.grade &&
data.Slump === $scope.filter.slump &&
data.Flow === $scope.filter.flow &&
data.LastDlvDate === $scope.filter.last_delivered) {
return true;
} else if ($scope.filter.grade === '') {
return true;
} else {
return false;
}
};
当我现在选择一个放置选项时,它什么都不显示。
这是一个笨蛋:
http://plnkr.co/edit/elwmuqLvhYhIw3rUrEO1?p=preview
我不确定为什么日期的 $filter 不起作用。
但我想在选择 Grade = "1" 时显示具体的 A。
【问题讨论】:
-
尝试从用
ng-options替换ng-repeat开始,看看这是否使任务更容易。 -
我不太确定如何让它工作
-
你能提供一个完整的例子和一些示例数据吗?
-
克莱斯我加了一个小插曲
-
对不起,我想我一开始问的问题不正确,我现在编辑了这个问题,希望通过 plunker 示例更有意义
标签: javascript angularjs