gpt4 book ai didi

javascript - 获取相关数组元素 AngularJS

转载 作者:行者123 更新时间:2023-12-03 05:05:05 25 4
gpt4 key购买 nike

我有一个 php api,它返回公司列表和用户列表,每个用户都分配有一个company_id。

(用户:客户列表)(公司:公司列表)

公司具有company_id和company_name值。

我正在使用resolve来获取这两个数组。

显示 CustomerList 时,会显示客户的 company_id,并且一切正常。

但我需要的是在 CustomerList 中显示 company_name,而不是显示 company_id。

CustomerList 的company_id 与CompanyList 中的id 相关。

只是company_name包含在companyList中而不是CustomerList中。但 ID 是相关的并包含在 userList 中。

我需要获取 CustomerList 中 id 的 company_name 并将其显示在 View 中。

resolve: { userList:function($http,$stateParams){
return $http.post('/api/get_users.php',{role:$stateParams.role},{headers: { 'Content-Type': 'application/x-www-form-urlencoded' }})
.then(function(response){
console.log(response);
return response.data.data;
})
},
companyList:function($http,$stateParams){
return $http.get('/api/get_companies.php')
.then(function(response){
console.log(response);
return response.data.data;
})
}
}

controller("CustomerList", function($scope,$location,$http,$stateParams,userList,companyList){
$scope.customers = userList;
$scope.companies = companyList;

})

查看

<table>
<thead>
<tr>
<th>Username</th>
<th>Company Name</th>
<th>Contact Name</th>
</tr>
</thead>
<tbody>
<tr ng-repeat="customer in customers">
<td>{{ customer.username }}</td>
<td>{{ customer.company_id }}</td>
<td>{{ customer.contact_name }}</td>

</tr>
</tbody>
</table>

customer.company_id与companyList中的ID相关,我需要返回companyList.company_name而不是在客户中显示公司ID。

预先感谢您的帮助。

最佳答案

你需要加入他们。因此,您需要创建一个新对象,其中包含 usernamecontact_namecompany_name 以及您需要的其他属性。您需要使用 map() 它将返回新对象的数组。使用 usernamecontract_name 很简单,只需将属性分配给新创建的对象即可。对于company_name,我们需要找到合适的公司并将其名称分配给新创建的对象。

使用简单数据的工作示例,它根据 id 连接两个数组。

var app = angular.module('app', []);

app.controller('ctrl', ['$scope', function($scope){

var userList = [
{username: 'A user', contact_name: 'A contract', company_id: 1},
{username: 'B user', contact_name: 'B contract', company_id: 2},
{username: 'C user', contact_name: 'C contract', company_id: 3},
];

var companyList = [
{id: 1, name: 'A Company'},
{id: 2, name: 'B Company'},
{id: 3, name: 'C Company'},
];

$scope.customers = userList.map(item => {

var foundCompany = companyList.find(company => company.id === item.company_id);

return {
username: item.username,
contact_name: item.contact_name,
company_name: foundCompany ? foundCompany.name : ''
};
});

$scope.companies = companyList;

}]);
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<body ng-app="app" ng-controller="ctrl">
<table>
<thead>
<tr>
<th>Username</th>
<th>Company Name</th>
<th>Contact Name</th>
</tr>
</thead>
<tbody>
<tr ng-repeat="customer in customers">
<td>{{ customer.username }}</td>
<td>{{ customer.company_name }}</td>
<td>{{ customer.contact_name }}</td>
</tr>
</tbody>
</table>
</body>

关于javascript - 获取相关数组元素 AngularJS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42039068/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com