2014-09-05 109 views
1

我刚开始学习Angular,现在我正忙于一个Web应用程序,它显示了我从JSON中获取的一些记录。 JSON的样子:AngularJS解析JSON

"results": [ 
    { 
    "easy": false, 
    "id": 1, 
    "title": "title", 
    } 
] 

我解析,关于这种方式(似乎是正确的我)

var app = angular.module("DB", []); 

app.controller("Controller", function($scope, $http) { 
    $http.defaults.headers.common["Accept"] = "application/json"; 
    $http.get('api_url'). 

    success(function(data, status, headers, config) { 
     $scope.thing = data.results; 
    }); 
}); 

所以,现在我在这个JSON文件,我需要得到ID(在此情况下,其1),并与该ID我需要做一个新的请求api.com/game/{id}以获得有关第一个文件的结果更详细的信息。

这样做的最好方法是什么?

+0

您应该用户工厂或服务,让您的API调用,然后注入工厂或服务到您的控制器。 – MohamedAbbas 2014-09-05 18:56:33

回答

1
$http.get('api.com/game/' + $scope.thing.id, function(...){ }); 

需要注意的是,您不必手动解析带有角度的JSON。它会为你做到这一点。所以data.results已经有表示你的回应的对象。

0

我认为这是好主意,如果你这样做:

var app = angular.module("DB", []); 

     app.controller("Controller", function($scope, $http) { 
      $http.defaults.headers.common["Accept"] = "application/json"; 
      $http.get('api_url'). 

      success(function(data, status, headers, config) { 
       $scope.thing = data.results; 
       $scope.id=data.results[0].id; 
       gameInfo(); 
      }); 
     }); 

    var gameInfo=function(){ 
    $http.get('api.com/game/'+$scope.id). 

      success(function(data, status, headers, config) { 
       $scope.newThing = data; 
      }); 
    }