@beduin01

Правильно ли я читаю JSON?

Пытаюсь считать JSON в переменную, однако вылетает ошибка. Вот сам код:

$scope.questions = $http.get('js/questions-content.json').success(function(response) {
         return response.data;
        // console.log(response.data);
    });


По идее return должен присваивание $scope.questions выполнять, верно?

Ошибка вот такая:
SyntaxError: Unexpected token ,
    at Object.parse (native)
    at fromJson


JSON сам такой:

[{"id":1},{"id":2}]

В чем может быть проблема?
  • Вопрос задан
  • 189 просмотров
Решения вопроса 1
@bromzh
Drugs-driven development
Если ты вызываешь success, то в аргументе колбека уже не response, а response.data.
Если ты вызываешь then, то там response.
Мог бы сам попробовать вывести аргумент коллбека success, прежде чем спрашивать.

Ну и из промиса ты получаешь не значение, а лишь промис. Так что в переменной $scope.questions будет промис результата, а не сам результат.
$http.get('js/questions-content.json').success(function(questions) {
         $scope.questions =  questions;
    });
// Но лучше так:
$http.get('js/questions-content.json').then(function(response) {
         $scope.questions =  response.data;
    });
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
bingo347
@bingo347 Куратор тега JavaScript
Crazy on performance...
В том, что это выполняется асинхронно:
$http.get('js/questions-content.json').success(function(response) {
         return response.data;
        // console.log(response.data);
    });

Когда вы выполняете присваивание объект response еще не получен, нужно так:
$http.get('js/questions-content.json').success(function(response) {
         $scope.questions =  response.data;
    });
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы