首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JSON输出到AngularJS解析器

JSON输出到AngularJS解析器
EN

Stack Overflow用户
提问于 2016-12-02 22:03:51
回答 1查看 49关注 0票数 1

我似乎不能把这些放在一个范围内..不确定我是不是做错了什么。

HTML:

代码语言:javascript
复制
        <div class="col-md-10 pull-md-left" style=" width:102%;">
            <div class="row">

                <span style="text-decoration:underline;">EC2 Instances</span> <span style="clear:both;">refresh</span>

                    <table class="table-striped" style="width:100%;border:1px solid gray;">
                        <thead>
                            <tr style="border-bottom:1px solid black; background-color:black; color:white;">
                                <th title="ID" style="width:20px;">#</th>
                                <th title="Customer Attached">Customer</th>
                                <th title="Instance Name">Name</th>
                                <th title="Instance ID">ID</th>
                                <th title="Instance Type">Type</th>
                                <th title="Instance Availability Zone">Zone</th>
                                <th title="This is Title">State</th>
                                <th title="Public DNS">WAN_DNS</th>
                                <th title="Public IP">WAN_IP</th>
                                <th title="What Instasnce Was Booted Up">Started</th>
                                <th title="Security Groups">Security</th>
                            </tr>
                        </thead>
                        <tbody>
                            <tr ng-repeat="ec2 in servers">
                                <td>{{ $index + 1 }}</td>
                                <td>{{ customerID }}</td>
                                <td>{{ instancename }}</td>
                                <td>{{ ec2.instanceID }}</td>
                                <td>{{ ec2.instanceType }}</td>
                                <td>{{ ec2.instanceAvailabilityZone }}</td>
                                <td>{{ ec2.instanceState }}</td>
                                <td>{{ ec2.publicdns }}</td>
                                <td>{{ ec2.publicip }}</td>
                                <td>{{ ec2.startdate }}</td>
                                <td>{{ ec2.secgroup }}</td>
                            </tr>
                            <tr ng-show="!ec2.length">
                            <td colspan="11" style="text-align:center;">
                                <BR>
                                No Instances have been syncronized.
                                <BR>    
                                <BR>
                            </td>
                            </tr>
                        </tbody>
                    </table> 
            </div>
        </div>


</div>

控制器:

代码语言:javascript
复制
<script>
var app = angular.module('myApp', []);
app.controller('ec2instanceCtrl', function($scope, $http) {
console.log('a test');
$http.get("ec2instances.php")
.then(function (response) {
            $scope.servers = JSON.parse(response.data);
            //$scope.servers = response.data.records;
            $scope.servers = results[0].ec2instance.map;
        }
    );
});

JSON:

代码语言:javascript
复制
{
"ec2instance": [{
    "ID": 0,
    "customerID": null,
    "ec2.instancename": "domain1.host",
    "ec2.instanceID": "i...",
    "ec2.instanceType": "x3large",
    "ec2.instanceAvailabilityZone": "us-east-1a",
    "ec2.instanceState": "running",
    "ec2.publicdns": "..com",
    "ec2.publicip": "127.0.0.1",
    "ec2.startdate": "11\/25\/2016 1:30AM",
    "ec2.secgroup": "open.ports"
}, {
    "ID": 1,
    "customerID": 2,
    "ec2.instancename": "server.com",
    "ec2.instanceID": "i2",
    "ec2.instanceType": "x5large",
    "ec2.instanceAvailabilityZone": "us-east-2c",
    "ec2.instanceState": "running",
    "ec2.publicdns": ".com",
    "ec2.publicip": "125.5.5.5",
    "ec2.startdate": "11\/1\/15 1:00am",
    "ec2.secgroup": "all"
  }]
}

现在只想弄清楚结果和为什么它不能填充...我不走运,是不是因为JSON的格式不正确?或者我没有正确设置作用域?

任何帮助都非常感谢!

EN

回答 1

Stack Overflow用户

发布于 2016-12-02 22:16:03

执行$scope.servers = JSON.parse(response.data).ec2instance,那么$scope.servers应该是一个包含服务器的数组。

假设解析后的数据没有问题(在JSON.parse行之后尝试console.log($scope.servers) ),在ng-JSON.parse中使用以下表示法:

代码语言:javascript
复制
<tr ng-repeat="s in servers">
    <td>{{ $index + 1 }}</td>
    <td>{{ s.customerID }}</td>
    <td>{{ s.instancename }}</td>
    <td>{{ s['ec2.instanceID'] }}</td>
    <td>{{ s['ec2.instanceType'] }}</td>
    <td>{{ s['ec2.instanceAvailabilityZone'] }}</td>
    <td>{{ s['ec2.instanceState'] }}</td>
    <td>{{ s['ec2.publicdns'] }}</td>
    <td>{{ s['ec2.publicip'] }}</td>
    <td>{{ s['ec2.startdate'] }}</td>
    <td>{{ s['ec2.secgroup'] }}</td>
</tr>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40934017

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档