Я действительно новичок в использовании AngularJS и Javascript. Мне нужно получить данные totalResults из источника JSON, который выглядит следующим образом:

{
 "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. Спасибо за вашу помощь!

7
Prajoth 22 Янв 2013 в 23:53

3 ответа

Лучший ответ

Вы можете использовать $http сервис: Документация

Так что вы можете:

$scope.add = function(){
  $http.get($scope.url).then(function(response) {
            $scope.newMessage = response.data.queries.request.totalResults;
            $scope.messages.push($scope.newMessage);
  });
};
15
yifeis 8 Мар 2018 в 20:28

Прочтите немного об услуге $ http, предоставляемой AngularJS

Вот подсказка к коду, который вы бы использовали

$scope.add = function(){
    $http.get(url).then(function(response){
        queries = response.queries;
        $scope.newMessage = queries.request.totalResults;
    })
}
1
mrzmyr 8 Авг 2013 в 18:44

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

По вашей ссылке я только что нашел одну ошибку:

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

Не имеет функции split (), если я заменю: x = "abc"

Результат: Стив Джобс - 515 000 000 результатов - a.b результаты dsgdfg - a.b результаты

1
pduersteler 11 Авг 2015 в 14:14