AngularJS $ http.get JSON-файл возвращает неопределенное - PullRequest
0 голосов
/ 21 сентября 2018

Я пытаюсь получить данные из файла JSON для отображения в моем приложении AngularJS с помощью $ http.get (...).Когда я запускаю оповещение с JSON.stringify, оповещение говорит «неопределено».Вот мой код:

JS

var pplApp = angular.module('pplApp', [ 'ngAnimate', 'ngSanitize', 'utilServices' ]);

  pplApp.controller('pplCtrl', function($scope, $http) {
    $http.get('people.json').then(function(data) {
      alert(JSON.stringify(data.People));
      $scope.peoples = data.People;
    });
  });

JSON

{
"People": [
  {
    "name": "Andrew Amernante",
    "rating": 3,
    "img": "http://www.fillmurray.com/200/200",
  "Description": "Gluten­free cray cardigan vegan. Lumbersexual pork belly blog, fanny pack put a bird on it selvage",
  "Likes": [
    "Dogs",
    "Long walks on the beach",
    "Chopin",
    "Tacos"
  ],
  "Dislikes": [
    "Birds",
    "Red things",
    "Danish food",
    "Dead Batteries"
  ]
}
]
}

Что мне не хватает?

Обновление: вот мое приложение в Plunker

Ответы [ 3 ]

0 голосов
/ 21 сентября 2018

Результатом является объект ответа (а не сами данные).Вы можете получить доступ к данным как response.data

pplApp.controller('pplCtrl', function($scope, $http) {
    $http.get('people.json').then(function(response) {
      alert(JSON.stringify(response.data.People));
      $scope.peoples = response.data.People;
    });
  });
0 голосов
/ 21 сентября 2018

Здесь data является строкой JSON, а не объектом, поэтому вы не можете использовать data.People , вместо этого вам просто нужнопередача данных в JSON.parse .

var pplApp = angular.module('pplApp', [ 'ngAnimate', 'ngSanitize', 'utilServices' ]);
  pplApp.controller('pplCtrl', function($scope, $http) {
    $http.get('people.json').then(function(data) {
      var response = JSON.parse(data);
      $scope.peoples = response.People;
    });
});

Я проверил вашу строку json и работает, используя следующиекод.

var json = '{"People": [{"name": "Andrew Amernante","rating": 3,"img": "http://www.fillmurray.com/200/200","Description": "Gluten­free cray cardigan vegan. Lumbersexual pork belly blog, fanny pack put a bird on it selvage","Likes": ["Dogs","Long walks on the beach","Chopin","Tacos"],"Dislikes": ["Birds","Red things","Danish food","Dead Batteries"]}]}';
var response = JSON.parse(json);
$scope.peoples = response.People;
0 голосов
/ 21 сентября 2018

Вы не должны использовать оператор точки с JSON.stringify, так как это просто строка, измените его на

  alert(JSON.stringify(data));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...