过滤AngularJS返回multiples元素

时间:2016-02-11 13:57:20

标签: javascript angularjs

我正在使用angularjs的过滤器,我正在尝试获取具有相同日期的元素,通过这样做:

  $scope.getFilebyDate= function(date){           

            return $filter('filter')($scope.files, moment(date).format("YYYYMMDDHHmmss"));

        }

我的文件数组就是这样组成的

[["20011110000000","#DT#20011110000000#ED#20021110000000Filename1"],
["20011110000000","#DT#20011110000000#ED#20021110000000#Filename2"],
["20021110000000","#DT#20021110000000#Filename3"] ]

我的问题是我的功能无法正常工作我想只使用第一列进行过滤,即使在第二列中,我所做的似乎也在寻找日期。

2 个答案:

答案 0 :(得分:1)

如果您只想过滤数组的第一个“列”,您可能希望将表达式函数作为$filter函数调用的第二个参数传递,在这里您可以对您进行特定的比较使用数组中的第一个项目/列格式化date

$filter('filter')($scope.files, function(value, index, array) {
  return value[0] === moment(date).format('YYYYMMDDHHmmss');
}); 

请参阅此plnkr以获取一个工作示例:http://plnkr.co/edit/kvfMnNoIMi7q1D4ChDIJ?p=preview

答案 1 :(得分:0)

您似乎缺少过滤函数的参数。以下是AngularJS filter docs$filter('filter')(array, expression, comparator)

的语法