Javascript 角度$filter与手动筛选

Javascript 角度$filter与手动筛选,javascript,angularjs,Javascript,Angularjs,我使用的过滤器带有ng repeat,无法正确过滤我的条目。然后,我分析了问题,发现过滤似乎有所不同 下面的两个代码示例执行可比较的筛选。代码示例1给出错误的结果,代码示例2按预期工作 return $filter('filter')(courses, {courseCategory: {id: category.id}, active: active}); 及 这两种代码的区别是什么 注意:我在ng repeat中使用的代码是:course in ctrl.courses | filter:

我使用的过滤器带有
ng repeat
,无法正确过滤我的条目。然后,我分析了问题,发现过滤似乎有所不同

下面的两个代码示例执行可比较的筛选。代码示例1给出错误的结果,代码示例2按预期工作

return $filter('filter')(courses, {courseCategory: {id: category.id}, active: active});

这两种代码的区别是什么


注意:我在
ng repeat
中使用的代码是:
course in ctrl.courses | filter:{courseCategory:{id:category.id},active:true}
。我认为这相当于代码示例1。

您在比较“活动”时使用的值可能不同。它是布尔值还是字符串?active:true vs course.active===active这是一个布尔值。代码示例1和代码示例2中的活动参数相同,但两个示例的结果不同。您能否提供一个小提琴来显示此参数,以及您正在查找和获得的内容?
var courseList = [];
angular.forEach(courses, function (course) {
    if (course.courseCategory.id === category.id && course.active === active) {
        courseList.push(course);
    }
});

return courseList;