繁体   English   中英

Angular JSON响应

[英]Angular JSON Response

以下是来自我的API的json响应。 我想在我的html中使用ng-repeat,以便将此数据显示给最终用户。 如何在控制器中反序列化此json数据。

    {
  "message": "Query to return servers",
  "result": [
    {
      "meta": [
        "Computer",
        "SQLPort",
        "Domain"
      ],
      "rows": [
        [
          "MyCompterName",
          "1433",
          "XXXX"
        ]
      ]
    }
  ]
}

这是加载到index.html中的app.js的代码

var app = angular.module('DSCApp', ['ngRoute', 'ngResource','ui.router']);

设定档

app.config(function($routeProvider){
    $routeProvider
        .when('/DSC', {
            templateUrl: "DSC.html",
            controller: 'DscController'
        })
        .otherwise({ redirectTo: '/' });
});

数据工厂

app.factory('dataFactory', ['$http', function($http) {
    var urlBase = '/api';
    var dataFactory = {};

    dataFactory.getServers = function () {
        return $http.get(urlBase);
     };

     return dataFactory;
}]);

控制者

 app.controller('DscController', ['$scope', 'dataFactory',
 function  ($scope, dataFactory) {  
  $scope.status
  $scope.servers;  

  getServers();

        function getServers() {
        dataFactory.getServers()
            .success(function (srv) {
                $scope.servers = srv;
            })
            .error(function (error) {
                $scope.status = 'Unable to load server data: ' + error.message;
            });
    }   

}]);

在表头和表体中都使用ng-repeat应该可以。

<html ng-app='app' ng-controller='DscController'>
      <head>
      </head>
      <body>
        <div class="container">
          <div class="jumbotron">
            <table ng-if="servers" class="table table-bordered">
              <thead>
                <tr>
                  <th ng-repeat="head in servers.result[0].meta">{{head}}</th>
                </tr>
              </thead>
              <tbody ng-repeat="r in servers.result">
                <tr ng-repeat="row in r.rows">
                  <td ng-repeat="item in row">{{item}}</td>
                </tr>
              </tbody>
            </table>
            <p ng-if="!servers">{{status}}</p>
          </div>
        </div>
    </body>
 </html>

我已经包含了必要的重复操作,以完全按照显示的方式处理数据。 我认为所有结果的meta都一样。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM