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');
});