我试图通过其项目ID找到项目。为此,我使用这种过滤方法:
$scope.filteredPro = $filter('filter')( project.ProjectSummaryFilter, {"ProjectId" : "1" } );
但是当我收到结果时,ID为1
和10
的项目也会出现..在这种情况下,如果我仅使用10
使用我的过滤器像这样:
$scope.filteredPro = $filter('filter')( project.ProjectSummaryFilter, {"ProjectId" : "10" } );
我正是从10
的ID中得到结果。怎么解决这个问题?
当我按10
过滤时,为什么我会收到包含ID为1
的项目的结果?
答案 0 :(得分:2)
要完全匹配,您应该尝试:
$scope.filteredPro = $filter('filter')( project.ProjectSummaryFilter, {"ProjectId" : "1" },true );
$ filter(' filter')(数组,表达式,比较器)
表达式:
对象:模式对象可用于过滤数组包含的对象的特定属性。例如{name:" M",phone:" 1"}谓词将返回一个项目数组,其属性名称包含" M"和包含" 1"
的财产电话
其中比较器值:
true:函数的简写(实际,预期){return angular.equals(actual,expected)}。这基本上是对预期和实际的严格比较。
答案 1 :(得分:0)
当您在过滤器中执行"ProjectId": "1"
时,您将过滤所有项目ID,其中1作为字符串的一部分,因此可以填充' 1'和' 10'。
所以,替换
"ProjectId" : "1"
通过
"ProjectId" : 1 //integer