我是angularjs的新人。所以,这可能是个愚蠢的问题。不管怎样,请让我解释一下我的问题。我有一个由ng-repeat列出的表,我想用另一个表列中的另一个数据更改列数据。
<tr data-ng-repeat=" list in listTypes">
<td>{{list.Comments}}</td>
<td>{{list.Modul}}</td>
<td>{{list.UserId}}</td>
<td data-ng-repeat="user in userNames">{{user.UserName}}</td>
我想获取UserName而不是UserId,但是UserName被记录在另一个表中的问题。以下是获取listTypes的角度:
$scope.GetList = function () {
var onSuccess = function (response, status) {
//1
$scope.listTypes = response.Data;
var str = response.Data;
$scope.listTypes = eval('(' + str + ')');
for (var key in $scope.listTypes) {
$scope.listTypes[key].selected = "";
}
$scope.GetUserNames();
};
var data = null;
var request = $rest.GetList(data);
NGTools.CallNgServiceWithRequest(request, onSuccess, "GetList");
};
尝试使用此代码获取用户名:
$scope.userdatas= [];
$scope.userNames = [];
$scope.GetUserNames = function () {
var onSuccess = function (response, status) {
//1
$scope.userNames = response.Data;
};
$scope.userdatas= $scope.listTypes.UserId;
var data = { userdatas: JSON.stringify( $scope.userdatas) };
var request = $rest.GetUserNames(data);
NGTools.CallNgServiceWithRequest(request, onSuccess, "GetUserNames");
};
但它不起作用。我无法弄清楚这个代码块有什么问题。如果有任何提示,请告诉我。谢谢!
答案 0 :(得分:1)
假设您的范围内有集合 - 其中一个包含用户的id,另一个包含名称,如下所示:
$scope.users = [
{ id: 1, name: 'John Doe' },
{ id: 2, name: 'Jane Doe' },
{ id: 3, name: 'Janice Doe' } ];
$scope.userInfo = [
{ userId: 1, gender: 'male' },
{ userId: 2, gender: 'female' },
{ userId: 3, gender: 'female' }];
然后,您可以使用userInfo和绑定表达式对其进行重复 - 使用id从其他集合中获取名称:
<li ng-repeat="item in userInfo">
{{ item.gender }} {{ getNameFor(item.userId) }}</li>
getNameFor定义为:
$scope.getNameFor = function(id) {
var user = $scope.users.filter(function(item) { return item.id === id })[0];
console.log(user);
return user.name;
我在这里检查了一下:http://jsfiddle.net/01kmoxw9/