Angularjs 角度-如何根据用户选择/选择的选项使用ng repeat筛选显示的数据?
数据应基于选项字段显示(通过ng重复)(请参见下文)。例如,如果用户选择“最佳公司牛仔”,则只应显示属于该公司的用户。我尝试了过滤器,但似乎不起作用,我尝试编写了一个函数,检查所选选项是否有效,但我不知道如何显示该选项(尝试在用户数组中循环并添加到新数组,然后在该数组中重复)。有人能帮忙吗?谢谢Angularjs 角度-如何根据用户选择/选择的选项使用ng repeat筛选显示的数据?,angularjs,filter,angularjs-ng-repeat,angular-filters,Angularjs,Filter,Angularjs Ng Repeat,Angular Filters,数据应基于选项字段显示(通过ng重复)(请参见下文)。例如,如果用户选择“最佳公司牛仔”,则只应显示属于该公司的用户。我尝试了过滤器,但似乎不起作用,我尝试编写了一个函数,检查所选选项是否有效,但我不知道如何显示该选项(尝试在用户数组中循环并添加到新数组,然后在该数组中重复)。有人能帮忙吗?谢谢 <div ng-app="app" ng-controller="appCtrl"> <select ng-model="selectedAccount" ng-option
<div ng-app="app" ng-controller="appCtrl">
<select ng-model="selectedAccount" ng-options="account.name for account in companies" ng-change="change()">
</select>
<div ng-repeat="company in companies">
<div ng-repeat="user in company.users">
<p>{{user.firstName}} | filter: 'selectedAccount'</p>
</div>
<div>
</div>
app.controller('appCtrl', function($scope){
$scope.companies = [{
name: 'The Best Company Denim',
users: [{
firstName: 'Alex',
lastName: 'D',
number: 1234
}, {
firstName: 'Sarah',
lastName: 't',
number: 14
}, {
firstName: 'J',
lastName: 'd',
number: 07
}]
}, {
name: 'The Best Company Elegant',
users: [{
firstName: 'Alx',
lastName: 'B',
number: 1234
}, {
firstName: 'Seth',
lastName: 'w',
number: 12
}, {
firstName: 'J.S',
lastName: 'B',
number: 7
}]
}, {
name: 'The Best Company by Julia',
users: [{
firstName: 'Aleddddx',
lastName: 'l',
number: 1234
}, {
firstName: 'Maggy',
lastName: 'n',
number: 1
}, {
firstName: 'Ja',
lastName: 'Key',
number: 123
}]
}]
$scope.change = function() {
var x = "";
for (var i = 0; i < $scope.selectedAccount.users.length; i++) {
console.log($scope.selectedAccount.users[i])
x += $scope.selectedAccount.users[i]
}
return x;
{{user.firstName}}|筛选器:“selectedAccount”
app.controller('appCtrl',函数($scope){
$scope.companies=[{
名称:“最佳公司牛仔”,
用户:[{
名字:“亚历克斯”,
姓氏:“D”,
电话:1234
}, {
名字:“莎拉”,
姓氏:“t”,
电话:14
}, {
名字:“J”,
姓氏:“d”,
电话:07
}]
}, {
名称:“最优雅的公司”,
用户:[{
名字:“Alx”,
姓氏:“B”,
电话:1234
}, {
名字:“赛斯”,
姓氏:“w”,
电话:12
}, {
名字:“J.S”,
姓氏:“B”,
电话:7
}]
}, {
名称:“朱莉娅的最佳公司”,
用户:[{
名字:“Aleddx”,
姓氏:“l”,
电话:1234
}, {
名字:“玛吉”,
姓氏:“n”,
编号:1
}, {
名字:“Ja”,
lastName:'Key',
电话:123
}]
}]
$scope.change=函数(){
var x=“”;
对于(变量i=0;i<$scope.selectedAccount.users.length;i++){
console.log($scope.selectedAccount.users[i])
x+=$scope.selectedAccount.users[i]
}
返回x;
}
}); 首先,您使用的
过滤器不正确
用于数组。所以你必须这样使用:
<div ng-repeat="element in array | filter: param">
另外,在您的ng选项中
,为了将公司名称绑定到所选的帐户
变量,请使用as
语法:
所选公司:{{selectedAccount}
{{user.firstName}
首先,您使用的过滤器不正确
用于数组。所以你必须这样使用:
<div ng-repeat="element in array | filter: param">
另外,在您的ng选项中
,为了将公司名称绑定到所选的帐户
变量,请使用as
语法:
所选公司:{{selectedAccount}
{{user.firstName}
<select ng-model="selectedAccount" ng-options="account.name as account.name for account in companies">
</select>