7

我对使用 AngularJS 和 Javascript 真的很陌生。我需要从如下所示的 JSON 源获取totalResults数据:

{
 "queries": {
  "request": [
   {
    "totalResults": "51"
   }
  ]
 }
}

获得数据后,我需要使用 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);
        };
        }
  }

在 HTML 部分,我有这个:

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

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

4

3 回答 3

15

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

这样你就可以:

$scope.add = function(){
  $http.get($scope.url).then(function(response) {
            $scope.newMessage = response.data.queries.request.totalResults;
            $scope.messages.push($scope.newMessage);
  });
};
于 2013-01-22T20:17:41.387 回答
1

阅读 AngularJS 提供的 $http 服务

这是您将使用的代码的提示

$scope.add = function(){
    $http.get(url).then(function(response){
        queries = response.queries;
        $scope.newMessage = queries.request.totalResults;
    })
}
于 2013-01-22T20:25:09.863 回答
1

http://plnkr.co/edit/nZkYsxLHLvf3SZNiJKic?p=info

按照您的链接,我只发现了一个错误:

var x = searchResults.split('.');

如果我替换没有函数 split():x = "abc"

结果:史蒂夫乔布斯 - 515,000,000 个结果 - ab 结果 dsgdfg - ab 结果

于 2015-08-11T12:05:23.760 回答