Получение данных JSON в таблицу в angularjs

0

Возвращенные данные ответа json из сообщения http следующие:

{"ResponseData":[["AUSTRALIA","VICTORIA","MELBOURNE"],["AUSTRALIA ","NEW SOUTH WALES","SYDNEY"]]}

Код контроллера:

app.controller('tableController', function ($scope)
    {
        $scope.customerTable = [];
        $scope.getTable = function ()
        {
            $http.get('getTable.do').success(function (data)
            {
                $scope.customerTable = data;
            });
        };
    });

Вот мой div:

<div ng-controller="tableController">
    <p>    Click <a ng-click="getTable()">here</a> to load data.</p>
    <table>
        <tr>
            <th>COUNTRIES</th>
            <th>STATES</th>
            <th>CITIES</th>
        </tr>
        <tr ng-repeat="data in customerTable">
            <td>{{data[0]}}</td>
            <td>{{data[1]}}</td>
            <td>{{data[2]}}</td>
        </tr>
    </table>
</div>

Когда я использую ng-repeat для загрузки данных, он просто отображает его как {{data.country}}, а не фактическое значение. Нет проблемы с сервером, поскольку я получаю ответ, но не могу понять, почему данные не отображаются в таблице?

Теги:

2 ответа

1
Лучший ответ

Попробуйте, контроллер: -

app.controller('tableController', function ($scope)
    {
        $scope.customerTable = [];
        $scope.getTable = function ()
        {
            $http.get('getTable.do').success(function (data)
            {
                $scope.customerTable = data["ResponseData"];
            });
        };
    });

HTML: -

<div ng-controller="tableController">
            <p>    Click <a ng-click="getTable()">here</a> to load data.</p>
            <table>
                <tr>
                    <th>COUNTRIES</th>
                    <th>STATES</th>
                    <th>CITIES</th>
                </tr>
                <tr ng-repeat="data in customerTable">
                    <td>{{data[0]}}</td>
                    <td>{{data[1]}}</td>
                    <td>{{data[2]}}</td>
                </tr>
            </table>
        </div>1
  • 0
    Это не сработало: /
  • 0
    обновил мой ответ. Можете ли вы попробовать один раз
Показать ещё 12 комментариев
3
{"ResponseData":
     [
         ["AUSTRALIA","VICTORIA","MELBOURNE"],
         ["AUSTRALIA ","NEW SOUTH WALES","SYDNEY"]]
}

Его объект, который содержит массив ResponseData, который содержит два массива с 3 строками. Вы должны сделать это:

app.controller('tableController', function ($scope)
    {
        $scope.customerTable = [];
        $scope.getTable = function ()
        {
            $http.get('getTable.do').success(function (data)
            {
                $scope.customerTable = data.ResponseData;
            });
        };
    });

И HTML:

<div ng-controller="tableController">
    <p>    Click <a ng-click="getTable()">here</a> to load data.</p>
    <table>
        <tr>
            <th>COUNTRIES</th>
            <th>STATES</th>
            <th>CITIES</th>
        </tr>
        <tr ng-repeat="data in customerTable">
            <td>{{data[0]}}</td>
            <td>{{data[1]}}</td>
            <td>{{data[2]}}</td>
        </tr>
    </table>
</div>
  • 0
    Попробовал это. Стиль не работал

Ещё вопросы

Сообщество Overcoder
Наверх
Меню