ng-repeat не работает на таблице с данными, восстановленными из метода post - PullRequest
0 голосов
/ 05 февраля 2020

У меня возникли проблемы при попытке отобразить таблицу с angularjs.

<table class="table">
    <thead>
        <tr>
            <th>User</th>
            <th>E-mail</th>
            <th>Registered On</th>
            <th></th>
        </tr>
    </thead>
    <tbody>
        <tr ng-repeat="s in users">
            <td>{{s.UserName}}</td>
            <td>{{s.UserEmail}}</td>
            <td>{{s.RegisterDate}}</td>
            <td class="td-actions text-right">
                <button type="button" rel="tooltip" class="btn btn-info">
                    <i class="material-icons">person</i>
                </button>
                <button type="button" rel="tooltip" class="btn btn-success">
                    <i class="material-icons">edit</i>
                </button>
                <button type="button" rel="tooltip" class="btn btn-danger">
                    <i class="material-icons">close</i>
                </button>
            </td>
        </tr>
    </tbody>
</table>

Это простая таблица для отображения этих данных:

var user = (from c in userService.GetAll()
            select new
            {
                UserName = c.UserName,
                RegisterDate = c.RegisterDate,
                UserEmail = c.UserEmail
            }).ToList();

JsonConvert.SerializeObject(new { user = user });
return Json(user, JsonRequestBehavior.AllowGet);

И я получаю данные на angular контроллере:

$scope.GetData = function () {
   $http.post('@Url.Action("GetData")').then(function (result) {
        if (result.data != null && result.data != undefined) {                      
            $timeout(function () {
                $scope.loading = true;
                users = result.data;
            }, 100);
        }
        else {
            loading = false;
        }
    })
}

И это не работает, данные не отображаются в таблице. Я попытался преобразовать в json и просто отправить объект.

Кроме того, я попытался с этим объектом, и он работал:

 $scope.groups = [
    { UserName: 'Test', UserEmail: 'a', Registered: '10/10/2020' },
    { UserName: 'Test', UserEmail: 'b', Registered: '10/10/2020' },
    { UserName: 'Test', UserEmail: 'c', Registered: '10/10/2020' },
    { UserName: 'Test', UserEmail: 'd', Registered: '10/10/2020' }
 ];

Я проверил свой объект, и он не выглядит неправильно, кто-нибудь может мне помочь?

1 Ответ

2 голосов
/ 05 февраля 2020

Данные должны быть свойством $ scope:

$scope.GetData = function () {
    $http.post('@Url.Action("GetData")').then(function (result) {
        $scope.loading = true;
        ̶u̶s̶e̶r̶s̶ ̶=̶ ̶r̶e̶s̶u̶l̶t̶.̶d̶a̶t̶a̶;̶
        $scope.users = result.data;
    })
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...