在页面上显示json数组数据

时间:2017-09-26 10:58:46

标签: javascript angularjs arrays json

我有一个post函数可以获取我的json。

我想打印出所有

max_slotsbase_imagec_name因为它们位于数组中我试图循环,但保存值以在我的HTML中使用。

我这样做了吗?如果不是最好的方法吗?

目的

在我的html

中显示json数组的结果

我正在尝试

$scope.c_name = [0];
      $scope.GetData = function () {
            $http({
                url: "http://www.ccuktech.co.uk/ccuploader/campaigns/getCampaign",
                method: "POST",
                date: {},
                headers: {'Content-Type': 'application/json'}
            }).then(function (data) {
                // success
                console.log('you have received the data ');
                console.log(data);
                // $scope.base_image = response.base_image; $scope.c_name = response.c_name;
                $scope.c_name = data.data.c_name;
                // for(var i = 0; i < c_name.length; i++) {
                //     var obj = c_name[i];
                //
                //     console.log(obj.id);
                // }
                // $scope.max_slots = data.data.max_slots;
                // $scope.slot_image = data.slots.base_image;
                // console.log($scope.c_name);
            }, function (response) {
                // failed
                console.log('failed getting campaigns goo back to log in page.');
                console.log(response);
            });
        };

我的HTML

<body ng-app='myApp'>
<h2>name</h2>:
{{c_name}}

<h2>max slots</h2>:
{{max_slots}}

<h2>image</h2>:
{{base_image}}
</body>

的JavaScript

 $scope.GetData = function () {
            $http({
                url: "http://www.####.co.uk/####/####/####",
                method: "POST",
                date: {},
                headers: {'Content-Type': 'application/json'}
            }).then(function (data) {
                // success
                console.log('you have received the data ');
                console.log(data);
                // $scope.base_image = response.base_image; $scope.c_name = response.c_name;
                // $scope.c_name = data.data.c_name;
                for(var i = 0; i < c_name.length; i++) {
                    var obj = c_name[i];

                    console.log(obj.id);
                }
                // $scope.max_slots = data.data.max_slots;
                // $scope.slot_image = data.slots.base_image;
                // console.log($scope.c_name);
            }, function (response) {
                // failed
                console.log('failed getting campaigns goo back to log in page.');
                console.log(response);
            });
        };

        $scope.GetData();

console.log(数据)结果

enter image description here

1 个答案:

答案 0 :(得分:1)

由于API响应中的data是一个数组。您不能只使用

检索值

尝试使用$scope.c_name = data.data.c_name;更改$scope.c_name = data.data[0].c_name;,依此类推。

OR

$scope.responseData = data.data[0];

html

<body ng-app='myApp'>
 <h2>name</h2>:
 {{responseData.c_name}}

 <h2>max slots</h2>:
 {{responseData.max_slots}}

 <h2>image</h2>:
 {{responseData.base_image}}
</body>

编辑:考虑在data数组中出现多个元素的可能性

$scope.responseData = data.data;

并在HTML中:

<body ng-app='myApp'>
  <div ng-repeat="data in responseData">
    <h2>name</h2>:
    {{data.c_name}}

    <h2>max slots</h2>:
    {{data.max_slots}}

    <h2>image</h2>:
    {{data.base_image}}
  </div>
</body>