Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/404.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/neo4j/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Angularjs筛选器始终返回true_Javascript_Angularjs_Angularjs Filter - Fatal编程技术网

Javascript Angularjs筛选器始终返回true

Javascript Angularjs筛选器始终返回true,javascript,angularjs,angularjs-filter,Javascript,Angularjs,Angularjs Filter,我为ng Repet制作了如下所示的过滤器: $scope.filterRoutine = function(col) { return _.isEqual(col.Routine.IsIndoor, true); } $scope.filterRoutine = function(col) { var x = false; _.forEach(tempData, function (temp) { if (_.find

我为ng Repet制作了如下所示的过滤器:

  $scope.filterRoutine = function(col) {
        return _.isEqual(col.Routine.IsIndoor, true);
}
$scope.filterRoutine = function(col) {
     var x = false;

     _.forEach(tempData, function (temp) {
                if (_.find(col.Exercises, { Exercise: temp })) {
                    x = true;                          
                }
        });

     return x

}
它工作正常(isEqual返回true或false)

但这不起作用,我不知道为什么(当我说它不起作用时,我没有得到任何错误,但视图没有改变)

我在这里做的(或者更确切地说,我想做的)是:我有tempdatacollection,如果我的列练习中至少有一项tempData,那么它应该显示在视图中。 但由于某些原因,所有项目都显示在视图中,即未过滤任何内容

我猜这是因为这个函数总是返回true(因为总是至少有一个列练习应该包含tempData中的项)

如何解决此问题,即从tempData中隐藏不包含任何项的所有列

从中返回并没有达到您期望的效果。 您需要执行以下操作:

  $scope.filterRoutine = function(col) {
        return _.isEqual(col.Routine.IsIndoor, true);
}
$scope.filterRoutine = function(col) {
     var x = false;

     _.forEach(tempData, function (temp) {
                if (_.find(col.Exercises, { Exercise: temp })) {
                    x = true;                          
                }
        });

     return x

}
另外,“回调可以通过显式返回false提前退出迭代。”,这意味着您的
返回false
在第一次
之后停止了迭代。find
返回
false