如何从angularjs中的另一个表中获取和比较表中的值?

时间:2015-01-29 18:44:47

标签: angularjs

我是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");
        };

但它不起作用。我无法弄清楚这个代码块有什么问题。如果有任何提示,请告诉我。谢谢!

1 个答案:

答案 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/