Javascript 具有多个下拉条件的角度自定义过滤器
我正在尝试使用多个下拉列表条件进行筛选。我能够想出如何一个接一个地过滤它们。我希望它们在没有选择任何内容时显示所有内容,value=”“ 但当我将其用于多个下拉列表时,它是有效的Javascript 具有多个下拉条件的角度自定义过滤器,javascript,angularjs,Javascript,Angularjs,我正在尝试使用多个下拉列表条件进行筛选。我能够想出如何一个接一个地过滤它们。我希望它们在没有选择任何内容时显示所有内容,value=”“ 但当我将其用于多个下拉列表时,它是有效的 $scope.customFilter = function (data) { if (data.Grade === $scope.filter.grade && data.Slump === $scope.filter.slump && data.F
$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;
}
};
当我现在选择拖放选项时,它不会显示任何内容
这里有一个小插曲:
我不知道为什么日期的$filter不起作用
但我想在选择grade=“1”时显示具体的A。这里是一个工作示例- 怎么了
条件错误-$scope.customFilter
。每个data.grade===$scope.filter.grade
的默认值都是空字符串$scope.filter.*
,因为您将'
它们一起使用,而选择了&&
,其他值是数据.grade
'==未定义的
,结果是
。所以我把条件改成了false
。这是因为我检查选择是否完全没有改变,我通过返回$scope.filter.grade | | data.grade===$scope.filter.grade&&…
忽略它,然后检查所选的是否等于true
不相关数据。这也使得($scope.filter.grade==''){
- 您不必初始化范围变量
,Angular将在第一次选择更改时进行初始化$scope.filter.grade=“”;
- 修复了日期筛选器部分,不需要
。您可以在模板$scope.displayDate
{{last_delivered | date:'dd-MM-yyyy'}中应用筛选器
ng options
替换ng repeat
,看看这是否会使任务更简单。我不太确定如何让它开始工作。你能提供一个完整的示例和一些示例数据吗?Claies我添加了一个plunker对不起,我想我一开始问的问题不正确,我现在编辑了这个问题,希望它更有意义e以plunker为例对于上次交付,它在您的plunker中起作用,但在我的代码中,由于某种原因,它得到{last_delivered}的值被转换为不同的时区,并且它不起作用-“2015-11-18T16:00:00.000Z”,任何想法都可能是因为您的$scope.last\u delivered
应该是所有可能日期的$scope.product\u last\u delivereds
数组。
$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;
}
};