从控制器AngularJS 1中获取特定的json密钥

时间:2018-04-09 10:10:22

标签: angularjs json api get

您好我是AngularJS的新手,并尝试将json密钥数据分别提取并显示到控制台窗口。我能够获取整个json数据,但无法获取特定节点内的数据。我哪里错了?

Service.js

advertised.listeners=PLAINTEXT://200.100.1.5:9092
listeners=PLAINTEXT://10.5.1.5:9092

控制器: -

app.service("AppService", function($http) {
    return {
       network: [],
       getAllService: function(network){

        return $http({
            method: 'GET',
            url: 'http://99.126.4.6:3200/app/json/allDatas',
            headers: {'Content-Type': 'application/json'} 

        })
                .then(function(data) {
                    return data;
                })
    }
    }
});

当我控制app.controller('getController', ['$scope','$http','AppService','$localStorage', function ($scope,$http,AppService,$localStorage) { $scope.load = AppService.getAllService(); $scope.load.then(function(data) { $scope.getAllData = data; $scope.getId = data.ID; $scope.getName = data.Name; $scope.getDescription = data.Description; console.log($scope.getId + $scope.getName + $scope.getDescription); }) }]); 时,我可以看到整个json响应。但无法获取内部密钥。

JSON响应: -

getAllData

2 个答案:

答案 0 :(得分:2)

您正在将旧语法与新语法混合:.success vs. .then

.then()会返回一个Http Promise,它会将您的回复包装在一个对象中。要提取数据,您需要先访问.data

修复此行:

.then(function(data) {
  return data;
})

.then(function(data) {
  return data.data;
})

答案 1 :(得分:1)

数据是一个数组,因此按索引

访问它的值
    $scope.load = AppService.getAllService();
    $scope.load.then(function(data) {
    angular.forEach(data, function(value) {
       console.log(value.ID+"   "+value.name++"   "+value.escription);
    });
    })