Angularjs 如何在对象中按数组过滤对象?安格拉斯

Angularjs 如何在对象中按数组过滤对象?安格拉斯,angularjs,angularjs-ng-repeat,ng-repeat,angularjs-filter,Angularjs,Angularjs Ng Repeat,Ng Repeat,Angularjs Filter,我从具有以下结构的数据库中获取了许多对象: $scope.user = { "surname" : "Kowalsky", "name" : "Jan", "subject_id" : ["123","678"] } 我需要显示subject\u id数组中有“123”的所有用户(姓氏和姓名) 我试着用ng repeat来做,但没用 <div ng-repeat="user in userList | filter: {user.subject_id:'123'

我从具有以下结构的数据库中获取了许多对象:

$scope.user = {
    "surname" : "Kowalsky",
    "name" : "Jan",
    "subject_id" : ["123","678"]
}
我需要显示
subject\u id
数组中有“123”的所有用户(姓氏和姓名)

我试着用
ng repeat
来做,但没用

<div ng-repeat="user in userList  | filter: {user.subject_id:'123'}">
  <b>Surname: </b>{{user.surname}}
  <b>Name: </b>{{user.name}}
</div>

在模板中使用控制器函数,如下所示:

<div ng-repeat="user in userList  | filter: filterUser">

试试这个。记住,变量userList是数组

app=angular.module(“app”,[]);
app.controller(“AppController”,函数($scope){
$scope.userList=[
{
“姓”:“科瓦尔斯基”,
“姓名”:“Jan”,
“受试者id”:[“123”,“678”]
},{
“姓氏”:“卡洛斯”,
“名称”:“Fev”,
“受试者id”:[“344”,“67”]
},{
“姓”:“乔”,
“名称”:“Mar”,
“受试者id”:[“112”,“634”]
}
];
}).filter('filterBySubject',函数(){
返回函数(用户列表、过滤器){
var结果=[];
for(用户列表中的变量i){
if(userList[i].subject\u id.indexOf(filter)>-1){
result.push(userList[i]);
打破
}
}
返回结果;
};
});

姓氏:{{用户.姓氏}
名称:{{user.Name}
您可以利用,例如,帮助您处理集合。
然后,您可以在控制器中轻松地对集合进行预筛选

$scope.users = _.filter($scope.users, function(user) {
  return _.includes(user.subject_id, '123');
});

你试过答案吗?
$scope.filterUser = function(item) {
   if(item.subject_id.indexOf('123') != -1}) {
       return true;
   }
   return false;
}
$scope.users = _.filter($scope.users, function(user) {
  return _.includes(user.subject_id, '123');
});