我的控制器中有一个过滤器,如下所示:
$scope.LegEntQueue = $filter('filter')(legEncoderQueue, {FileAppCD: 'ENT'}).length;
如果值为legEncoderQueue
FileAppCD
的属性计算名为ENT
的数组的结果
这很有效,但有没有办法让它模糊搜索并选择值中有ENT
的任何内容?例如ENT-M-And
和ENT-M-iOS
?
答案 0 :(得分:2)
有一个属性$
,它将对集合中的所有属性执行子字符串搜索。在您的情况下,您可以使用
$scope.LegEntQueue = $filter('filter')(legEncoderQueue, {$: 'ENT'})
可以使用特殊属性名称(默认为$)(例如{$: “text”})接受对象或其对象的任何属性的匹配 嵌套对象属性。
答案 1 :(得分:0)
Thank you all for your input, it took me a moment to realize my ignorance, thinking I could just use some built in angular filter to do what just plain javascript could do.
My Solution, was to create a function:
$scope.regexCount = function(array, feild, pattern) {
var count = 0;
for (index = 0; index < array.length; index++) {
if (pattern.test(array[index][feild])) {
count ++;
}
}
return count;
};
And then pass in my parameters.
$scope.LegEntQueue = $scope.regexCount(legEncoderQueue, 'FileAppCD', /ENT.*/);