使用angularJS从JSON url获取数据

Pra*_*oth 7 javascript json google-api angularjs

我是使用AngularJS和Javascript的新手.我需要从JSON源获取totalResults数据,如下所示:

{
 "queries": {
  "request": [
   {
    "totalResults": "51"
   }
  ]
 }
}
Run Code Online (Sandbox Code Playgroud)

获得数据后,我需要使用AngularJS将其显示在列表中.我尝试使用.ajax和.getJSON非常努力,但鉴于我完全缺乏使用JavaScript的知识,我无法让它们中的任何一个工作.我真的很感谢你的帮助!我的AngularJS看起来像这样:

function MyController($scope){
        $scope.url = "https://www.googleapis.com/customsearch/v1?key=[MYKEY]&cx=[MYSECRETKEY]&q=flowers&alt=json&fields=queries(request(totalResults))";
        $scope.newMessage = "";
        $scope.messages = ["Steve Jobs - 515,000,000 results"]; 

        $scope.add = function(){
            $scope.messages.push($scope.newMessage);
        };
        }
  }
Run Code Online (Sandbox Code Playgroud)

在HTML部分,我有这个:

<input type="text" ng-model="newMessage">
    <input type="submit" ng-click="add()" value="Click to find out!">
Run Code Online (Sandbox Code Playgroud)

当用户单击按钮时,我希望调用url,并且$scope.newMessage应该是totalResults中的值.谢谢你的帮助!

Val*_*nov 15

您可以使用$http服务:文档

所以你可以:

$scope.add = function(){
  $http.get($scope.url).then(function(response) {
            $scope.newMessage = response.data.queries.request.totalResults;
            $scope.messages.push($scope.newMessage);
  });
};
Run Code Online (Sandbox Code Playgroud)

  • 我认为回调接收响应对象,而不是直接接收数据.那么也许应该是`srvResponse.data.queries.request.totalResults`?还是我错了? (2认同)
  • 你可以发布显示此错误的Plunker/Fiddle吗? (2认同)