Javascript 角度-基于ID FK链接表中的两个API源
我是Angular的新手,我正在尝试创建一个用户事务列表,其中显示了操作的时间和用户名。在我的审计API中,我有一个操作ID和与我的用户API关联的用户FK,我将其显示如下:Javascript 角度-基于ID FK链接表中的两个API源,javascript,angularjs,api,foreign-keys,ngresource,Javascript,Angularjs,Api,Foreign Keys,Ngresource,我是Angular的新手,我正在尝试创建一个用户事务列表,其中显示了操作的时间和用户名。在我的审计API中,我有一个操作ID和与我的用户API关联的用户FK,我将其显示如下: HTML <table> <thead> <tr> <th> Date/Time </th> <t
HTML
<table>
<thead>
<tr>
<th>
Date/Time
</th>
<th>
User
</th>
</tr>
</thead>
<tbody>
<tr ng-repeat="audit in audit.data>
<td>{{audit.audit_date_time}}</td>
<td>**{{audit.audit_user_fk}}**</td> **<--I need the name not the ID here**
</tr>
</tbody>
</table>
AUDIT
[
{
"audit_id": "1",
"audit_date_time": "2016-01-28 12:46:20",
"audit_user_fk": "97"
}
]
USER
[
{
"user_id": "97",
"user_full_name": "Mr.User",
}
]
从每个API获取数据时工作正常的控制器:
app.controller('auditControl', ['$scope','auditService', 'userService', function ($scope, auditService, userService) {
var auditLogs = auditService.query(function () {
$scope.audit.data = auditLogs;
});
var user = userService.query(function () {
$scope.auditUser = user;
});
}]);
所以我的主要问题是在表中获取用户名,而不是外键值。我已经删去了很多内容,以便我们能够集中精力解决主要问题。根据审核API中的FK从用户API获取用户名,并根据审核API中的项目重复
非常感谢任何帮助,并为noob问题道歉 您可以这样做: 控制器:
app.controller('auditControl', ['$scope','auditService', 'userService', function ($scope, auditService, userService) {
var auditLogs = auditService.query(function () {
$scope.audit.data = auditLogs;
});
var user = userService.query(function () {
$scope.auditUser = user;
});
$scope.getUserName = function (id) {
var result = $scope.users.filter(function( user ) {
return user.user_id == id;
});
if (angular.isDefined(result) && result.length > 0) {
return result[0].user_full_name;
} else {
return "--";
}
}
}]);
HTML
日期/时间
使用者
{{audit.audit\u date\u time}
**{{getUserName(audit.audit\u user\u fk)}****您可以这样做:
控制器:
app.controller('auditControl', ['$scope','auditService', 'userService', function ($scope, auditService, userService) {
var auditLogs = auditService.query(function () {
$scope.audit.data = auditLogs;
});
var user = userService.query(function () {
$scope.auditUser = user;
});
$scope.getUserName = function (id) {
var result = $scope.users.filter(function( user ) {
return user.user_id == id;
});
if (angular.isDefined(result) && result.length > 0) {
return result[0].user_full_name;
} else {
return "--";
}
}
}]);
HTML
日期/时间
使用者
{{audit.audit\u date\u time}
**{{getUserName(audit.audit\u user\u fk)}****创建自定义筛选器
app.filter("lookupUser", function() {
function lookup (idNum, userList) {
var userName = "UNKNOWN";
angular.forEach(userList, function(user) {
if ( user.user_id == idNum ) {
userName = user.user_full_name;
};
});
return userName;
};
return lookup;
});
然后在模板中:
<tr ng-repeat="audit in audit.data>
<td>{{audit.audit_date_time}}</td>
<td>{{audit.audit_user_fk | lookupUser : auditUser }}</td>
</tr>
创建自定义筛选器
app.filter("lookupUser", function() {
function lookup (idNum, userList) {
var userName = "UNKNOWN";
angular.forEach(userList, function(user) {
if ( user.user_id == idNum ) {
userName = user.user_full_name;
};
});
return userName;
};
return lookup;
});
然后在模板中:
<tr ng-repeat="audit in audit.data>
<td>{{audit.audit_date_time}}</td>
<td>{{audit.audit_user_fk | lookupUser : auditUser }}</td>
</tr>
这很管用,米格尔,谢谢。我将使用下面的过滤器选项,因为它看起来更加灵活和可重用,但是,真的,谢谢你。它会有用的,米格尔,谢谢。我将使用下面的过滤器选项,因为它看起来更加灵活和可重用,但是,真的,谢谢你。它会有用的。