答案 0 :(得分:4)
您可以在阵列上使用Angular的内置filter逻辑,但请记住,这不是完全匹配,如果usrSingle
设置为3,则匹配数组条目300,请参阅Fiddle中的示例。
<div ng-repeat = "con in cons | filter:{y:usrSingle} ">...</div>
为了与数组元素完全匹配,您可以在控制器上使用filter:
和谓词函数,即
控制器(Fiddle):
app.controller('usrPageController', function ($scope) {
$scope.filterFn = filterFn;
$scope.usrSingle = 3;
$scope.cons = [
{x:0, y:[1,2,3]},
{x:1, y:[2,3,4]},
{x:2, y:[3,4,5]},
{x:3, y:[4,5,6]},
{x:4, y:[5,6,7]}
];
function filterFn(con){
return con.y.indexOf($scope.usrSingle) > -1;
}
});
查看:
<div ng-repeat = "con in cons | filter:filterFn">...</div>
或者,您可以创建自定义过滤器,该过滤器可以在应用的其他位置重复使用,并将usrSingle
作为参数传递:
过滤(Fiddle):
app.filter('customFilter', function() {
return function(input, value) {
var result = [];
input.forEach(function(item){
if(item.y.indexOf(value) > -1){
result.push(item);
}
});
return result;
};
});
查看:
<div ng-repeat = "con in cons | customFilter:usrSingle">...</div>